トップページphp
1001コメント345KB

PostgreSQL

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/09(水) 11:36ID:GHX.oCXo
PostgreSQLについて語りましょう。
関連アプリケーション特有の話題は、以下のスレッドへ。

☆関連スレッド
[PHP + PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=983128806
[PHP以外+PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=988929199
[MySQL vs PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=989341364
0482nobodyさん02/08/24 05:30ID:???
>>481
groupquota
0483nobodyさん02/08/24 06:47ID:???
>>482
無理。

initlocation使ってうまく容量制限かけられたとしても、制限にひっかかると
dbが壊れる。

PostgreSQL自体がデータベースごとの最大容量を指定できるようにならない限
りはどうしょうもないと思う。
0484nobodyさん02/08/27 15:00ID:???
DBからユーザを削除したいのですが、
念のため pg_class の中を削除したいユーザIDで検索すると、

pg_toast_XXXXXX_idx
pg_toast_XXXXXX

というデータが見つかります。これって何でしょう?
無視してユーザ消してしまっていいんでしょうか?
0485nobodyさん02/08/27 15:28ID:???
>>484
pg_*テーブルはPostgreSQLの内部テーブルなんでユーザーを消しても平気。
TOASTが何かを知りたいなら↓。
http://www.jp.postgresql.org/projects/devel-toast.html
048648402/08/27 15:59ID:???
>>485
でも、とあるテーブルのオーナを削除したらまずいんじゃないの?
と思って試してみたら

%createuser hoge
%psql -U hoge hoge
hoge=#create table t1 (a int);
hoge=# \dt
List of relations
Name | Type | Owner
------+-------+-------
t1 | table | hoge
(1 row)
hoge=#\q
%dropuser hoge
%psql hoge
hoge=# \dt
List of relations
Name | Type | Owner
------+-------+-------
t1 | table |
(1 row)
hoge=#\q
%

あ、なるほど。表示されなくなるだけなのね。納得。
04877.2.202/08/27 23:49ID:yZsdlGNN
実は本家はマイナーバジョンアップしてるという罠
0488nobodyさん02/08/28 00:15ID:???
create operator classとかset search_path=publicとか
7.2.2でサポートされてます?7.3からかな?

select timestamp( date(now()) );
通るようになったかな。7.2.1だと↑通らん。

SELECT CAST( now() AS date ), now()::date, 'now'::date::timestamp;
通るからまぁいいんだけど。
0489nobodyさん02/08/28 06:15ID:???
7.2.2 は
> ALSO NOTE!!! This is a security update. A number of security related
> bugs were fixed. The update is mandatory!!
ということなので、さっさとアップデートした方がいいよ。

>>488
7.2.xは基本的にメンテナンスリリースなんで新機能は入りませんです。
0490nobodyさん02/08/28 06:40ID:???
>489
マイナーバージョンアップは、PGDATA領域そのまんまでも
OK?
0491nobodyさん02/08/28 08:46ID:???
>>490
OK
以下を参照ね。
http://www.jp.postgresql.org/sitess.html
0492nobodyさん02/08/29 11:09ID:V8Nh7P6Z
遅れ馳せながら
>>476さんありがとうございます。

項目の定義として、システム日付をデフォルトで入れるように
「日付 varchar(14) default to_char('now'::datetime, 'YYYYMMDDHH24MISS')」
という風に設定しているのですが、データを見ると日付の中にはテーブルを作成して
一番最初に取得したYYYYMMDDHH24MISSを何度も入れてしまいます。

名前 | 日付 |
--------------------------
aaa |20020829103253 |
bbbb |20020829103253 |
cccc |20020829103253 |

        ・

といった感じなのですが、このテーブル項目作成の定義は間違っているでしょうか。
0493nobodyさん02/08/29 11:43ID:???
>>492
http://www.postgresql.jp/document/pg721doc/user/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT
0494nobodyさん02/08/29 14:49ID:???
>>493さん
おかげでうまくいきました。
ありがとうございました。勉強になりました。
0495nobodyさん02/08/29 15:21ID:K7zpT3ze
更新履歴をデータベース化しようとしているのですが
INSERT INTO "whatsnew" VALUES(
'2002-08-29',
'{"<a href="/">XXXX</a>を更新しました", "YYYY"}'
);
と書くと前半部分<a href="/が無視されます。
"のエスケープする方法しらないでしょうか?
0496nobodyさん02/08/29 15:22ID:???
( ´,_ゝ`) プッ
0497nobodyさん02/08/29 15:32ID:???
>>495
\"
0498nobodyさん02/08/29 15:42ID:K7zpT3ze
>>497
それはやってみたんだけど、
テーブルの中身を確認したら無視されています。
0499nobodyさん02/08/29 15:43ID:???
ちょっと日本語変でごめん。
050049702/08/29 15:55ID:???
> '{\"<a href=\"/\">XXXX</a>を更新しました\", \"YYYY\"}'
これじゃだめなのね? なんでだろうね。
あと、"と'を混在しているのはなぜ? 全部"でかいてみ。

050149502/08/29 16:08ID:???
それでも変化なしでした。
テーブルの中身は「{">XXXX</a>を更新しました","YYYY"}」です。
あと'と"を混合してるのは下のページの影響です。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/arrays.html
050249702/08/29 16:11ID:???
ああ、誤解していたよ。これならどう?
> '{"<a href=\"/\">XXXX</a>を更新しました", "YYYY"}'
0503nobodyさん02/08/29 16:28ID:???
それでも駄目でした。
テーブルの中身も変わらず…。
050449702/08/29 16:30ID:???
テーブルの定義はどうなっている? 配列なんだよね?
050549502/08/29 16:48ID:???
CREATE TABLE whatsnew(
update date,
content text[]);
こんな具合です。
050649702/08/29 17:03ID:???
実はMySQL使いなので、MySQLで試しててみたんだけど。。(あまり関係ないと思ふが)
<a href="/"> の、/ って、エスケープ文字と同じじゃない?
だから、エスケープはこうならないかな?
> '{"<a href=\"\\\">XXXX</a>を更新しました", "YYYY"}'
050749502/08/29 17:11ID:???
それでも駄目でした。
ERROR: parser: parse error at or near "'"

ためしにこっちもやってみたけど
'{"<a href=\"\/\">XXXX</a>を更新しました", "YYYY"}'
こちらも駄目。
050849502/08/29 17:32ID:???
ごめんなさい。自分が間違っていたみたいです。
'{"<a href=\"/\">XXXX</a>を更新しました", "YYYY"}'
とすれば、テーブルの中身は
「<a href=\"/\">XXXX</a>を更新しました", "YYYY"}」
となっていました。迷惑かけてごめんなさい。
050949702/08/29 17:50ID:???
ぶーぶー。
でも、解決したみたいなので良かったっす。
# これが MySQLスレだったらもっと良かったのに
051049502/08/29 17:53ID:???
phpPgAdminを使っていてごっちゃになっていました
'{"<a href=\"/\">XXXX</a>を更新しました", "YYYY"}'
じゃなく
'{"<a href=\\\"/\\\">XXXX</a>を更新しました", "YYYY"}'
でした。
スレ汚し、スマンです。もうちょっと勉強してきます。
0511sas02/08/30 04:37ID:T6Vbh/On
はじめまして! 
Postgresqlにログイン出来なくて困っています…。
postgresql-7.1.3 win32をインストールし、
initdb.exeを実行してデータベースを初期化し、
pgsvmgr.exeでデータベースサーバーを起動し、
psqlj.exeで、ホスト名localhost
ユーザー名 Administrator
パスワードはWindowsで管理者としてログインするときの
パスワードを入力しましたがログインできません。
色々調べてみましたが、原因がわかりません。
どうしたらいいでしょうか?教えてください。


0512nobodyさん02/08/30 05:08ID:???
パスワードあってるの?
0513sas02/08/30 15:53ID:PK97+40Y
WindowsXPにログインする時に、
使っているパスワードなので、
あってると思います。
0514nobodyさん02/08/30 16:28ID:okP1fGcQ
Redhat7.3で最初にインストールされるPostgreSQLの状態って
そのまんまで他のクライアントからODBC接続(Accessでリンクする)はできないんでしょうか?
ODBC--呼び出しが失敗しました。
Could not connect to the server.
Could not connect to remote socket (#101)
っていうエラーがでるんですが・・・(Accessでリンクしようとした時)
0515nobodyさん02/08/30 16:30ID:okP1fGcQ
↑あ、ユーザーとデータベースは作ってあります。
0516nobodyさん02/08/30 18:15ID:???
>>513
PostgreSQLのユーザーはWindowsのユーザーとは別。
pg_hba.confで検索しる。

>>514
Redhatは知らんが、デフォルトではTCP/IPでの接続はできない。
postgresql.confでtcpip_socket = trueする。
たぶん、パスワードとかの設定も必要だろうからその辺は適当に。
051751402/08/30 19:17ID:okP1fGcQ
>516
うおおおおおお
のた打ち回ってた問題が解決したっ!
あんた神か!? ありがとう!
0518nobodyさん02/08/30 20:44ID:8xSHI6ux
マニュアル読もうよぉ
0519nobodyさん02/08/31 02:43ID:???
とあるパターンを配列に格納し、その出現回数を取得したいと思います。
ところが

 SELECT pattern, count(pattern) FROM t1 GROUP BY pattern;

とやると、

 ERROR: Unable to identify an ordering operator '<' for type '_text'
  Use an explicit ordering operator or modify the query

と怒られてしまいます。ひょっとすると、と思って、

 SELECT pattern FROM t1 ORDER BY pattern;

とやっても案の定、同じように怒られますた。

このあたりが配列の限界なのでしょうか?
ちなみにテーブルは以下のような形です。

 CREATE TABLE t1 (
  pattern TEXT[]
 );
 INSERT INTO t1 VALUES ('{"A", "B", "C"}');
 INSERT INTO t1 VALUES ('{"A", "B", "C"}');
 INSERT INTO t1 VALUES ('{"A", "D", "E"}');
         :
         :
0520nobodyさん02/08/31 02:58ID:mK1R3E6Z
全国の看護婦フェチの方、並びに盗撮マニアの皆さん、お待たせしました!都内某所の病院に盗撮カメラを仕掛けるという一大プロジェクトを敢行!!
ナースステーションのあらゆる場所に仕掛けられた隠しカメラから、知られざるナースたちの秘密を映し出します!
http://210.188.193.18/agency/bnb/form.phtml?banner=wataru
0521nobodyさん02/08/31 08:24ID:???
>>519
operator < (text[], text[]) が無いのが原因。
自分で create operator してやればいいんじゃない?

でも、配列の各要素を別の行にできないかも検討してみるといいかも。
他のDBMSへも移植しやすくなるし。
0522nobodyさん02/08/31 11:05ID:McY4kGnj
普段はAccessでリンクしてデータを追加したり変更したりしてるんですが
テーブル作るときにデフォルトのSQL_ASCIIってのだと文字化けしてるんで
EUC_JPで作り直したらこんどはWebで表示したときに文字化けるように
なってしまって・・・どうすればいいんでしょうか・・・。
0523nobodyさん02/08/31 11:09ID:Eh4H/Twd
>>522
 文字コードが統一できていないから化けるのだと思われ。
 HTMLの文字コードをEUCにするか、PosgreSQLから出したデータをSJISなどに変更しろ。
0524nobodyさん02/08/31 17:32ID:???
>519

contribとintarray,arrayあたり使えばできるよ。
ただ、配列使うとindex使われないからあまりいいスキーマ設計とはいえないね。

まだ
"ABC"、"ADE"とかで前方一致(LIKE)で検索した方がいいような。
0525nobodyさん02/08/31 17:32ID:???

contrib!の!
0526動画無料サンプル02/08/31 22:55ID:AF4irkr1
ブルマ・水着・セーラー服でスケベな事してる
小学生、中学生、女子高生が【無料】で見れる!!
http://www.traffimagic.com/WIPE7MMLZCA/comein/NZKYA
052712302/09/01 02:40ID:Rn3wDJdF
えっと,PostgreSQLのストアドはいい開発環境とかあるのかな?
SQLはcse使っているけど,あれではストアド作ることしかできないよな。
いい開発環境がないと,どうもそもそも使う気になれない。
ただ,SQLにソースを書くのは好きではないので,PostgreSQLでもストアドはやっぱり使いたい。

誰かいい開発方法知らんかのぉ。
普段使ってるストアドはTransactSQL(SQLserver)になるが,
たとえば,こんなものを作るとする。

DECLARE @no int
SET @no = 1

SELECT *
FROM TABLE
WHERE no = @no

@no = 1 でSELECTするということ。
これをクエリマネージャとか使うと結果も見れる。
ストアドに変えようと思ったらそのまま,
上と下に Createprocedre [selectno](こんなんだっけ) go とかつけて,
SET = としているとこをパラメータ渡しに変えたらストアドになるしね。
こんな簡単なSQLだったら,一発で作れるだろうが,ちょっと複雑なもので
テストとか繰り返して,作ろうと思ったら,開発環境いるよな。

また,コンソールから exec selectno(1)
みたいにしたら,ストアドをキックできて,結果も見れる。
こんなことしながらの開発PostgreSQLで出来るのかな。

とりあえず,ストアド作った後にそれを実行するのが,
プログラムからしかできないのはきつい
0528nobodyさん02/09/01 03:21ID:???
>527
ストアド作るごときエディタでええやん。

頭ん中で流れ考えるんだよ(w
それが面倒ならmssqlserverでも買ってなさいってこった。

pgaccessでやれることが限界では。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/app-pgaccess.html

テキストベースでできた方が何かと便利。
遠隔操作とかにも都合がいいし、テストをちょちょっとスクリプトで書いたり。
052952202/09/01 18:41ID:/oI3M69S
>523
PosgreSQLから出したデータをSJISなどに変更
ってどうやるんでしょうか・・・
0530nobodyさん02/09/01 21:06ID:???
client encodingを変えればいいじゃん。
053152202/09/01 23:39ID:/oI3M69S
>530
psqlで
SET CLIENT_ENCODING = 'SJIS';
とやってみたんですが、Webで表示してる方には変化がなくて・・・。
HTMLのCharsetをEUCにすると日本語はOKなんですが関係ない部分が
なぜか文字化けてしまいました。
0532nobodyさん02/09/01 23:45ID:???
ラージオブジェクトについて教えてください。

@ラージオブジェクトを例えば

  INSERT INTO t1 (id, oid) VALUES (1, lo_import('/tmp/hoge'))

 で作ったとして、それを削除したいときには

  DELETE FROM t1 WHERE id = 1

 で削除するだけでいいんでしょうか?ゴミとかは残りませんか?

A上記の例でさらに

  UPDATE t1 SET oid = lo_import('/tmp/hoge') WHERE id = 1

 なんてしちゃった場合、元のラージオブジェクトはどこに行ってしまうのでしょう?
 自動的に削除されるのでしょうか?ゴミとかは残りませんか?
053352202/09/01 23:50ID:/oI3M69S
■ ← この文字(記号?)が文字化けてしまいました。
0534nobodyさん02/09/06 02:31ID:tscmWiVv
textデータ型の容量制限が1Gということですが、
1カラムに1Gがのデータを入れると、8kのカラム容量制限に引っかからないですか?
0535nobodyさん02/09/06 08:36ID:KP0wE/mN
>>534
8kのカラム容量制限 は、7.1 で解決済み。
最新版使ってれば全く問題ない。TOAST という技術。
私はメールの本文とかを丸ごと1カラムに格納してる。
0536ななしし02/09/06 12:16ID:o0uKxXbL
>>532
残ります。
lo_unlinkをかけてあげましょう。
053753202/09/06 14:12ID:???
>>536
ありがとう。
0538nobodyさん02/09/06 18:21ID:6cS1MLb+
>>535
ありがとうございます。
助かりました。
05398月のクリスマス ◆zzfy/JR2 02/09/06 18:37ID:zUklKDWI
PostgreSQLに接続し
$result=pg_exec("select * from nwpersonal ");
を実行すると下記のエラーが発生するのですが
どうしたらよいのでしょうか?
分かる方よろしくお願いします☆

Warning: PostgreSQL query failed: ERROR: nwpersonal: Permission denied.
0540nobodyさん02/09/07 00:41ID:???
>>539
許(grant)してけれ〜〜、お代官様(w
つか、ちぃたぁマニュアル読め(w
0541nobodyさん02/09/08 09:08ID:???
マニュアル読まなくてもPermission deniedぐらい理解さらせ
0542nobodyさん02/09/08 12:44ID:???
最近、目の前に出ているエラーメッセージすら読まない香具師多数。
0543nobodyさん02/09/09 01:15ID:Ek+d2LV7
掲示板のログを1つのテーブルに入れようと思います。
件数は1万件以上ですが、テキストファイル保存に比べて、
パフォーマンス上問題はないでしょうか?
0544nobodyさん02/09/09 16:59ID:???
>>543
どのような掲示板でしょうか?(と聞いてみる)
0545nobodyさん02/09/09 20:33ID:???
うまく作れば、フラットファイル保存の方が速いに決まってる。

しかし、作り込まれたRDBMSよりパフォーマンスが出るフラットファイルの
入出力を作るのは至難の技。

それに、ふつーに作れば、ネットワークの帯域の方がボトルネックになって、
I/Oなんてどっちもどっち。

イントラとかなら別だが。
0546nobodyさん02/09/10 09:52ID:VSIVhwr4
>>544
普通のスレッド型掲示板です。
スレッドを表示する場合はスレッドIDが一致するものだけ取り出そうかと。
0547nobodyさん02/09/10 17:03ID:20uIzqy9
どなたか教えてください。
Pear DBパッケージのStatementを用いた挿入がうまくいきません。
【PHP】質問スレッドとPHP+MySQLでたずねたのでマルチになりますが。。。
どなたも答えてくれませんので、またここで、質問を投げます。だめですか??
※日付型(書式:yyyy/mm/dd HH:mm:ss)は現在時刻を挿入する。
※日付型以外(文字列、数値型)はうまくいきます。
エラー内容
SQLエラー → ステートは37000
コードは以下です。
/**
* インサートテスト
*
* @access public
* @param ProductState $ps 製品状態情報
*/
function insert($ps)
{
 // DB接続
 $this->connect(); // $this->db = DB::connect( $dsn )にて取得。
 // SQL文
 $sql = "INSERT INTO user (id,name,date) VALUES (?,?,?)";
 // Statement取得
 print "date=" . date("Y-m-d H:i:s",time()) . "\n";
 $stmt = $this->db->prepare( $sql );
 // SQL発行
 // $this->db->execute($stmt, array($ps->id,$ps->name,time())); //これもだめでした。
 $this->db->execute($stmt, array($ps->id,$ps->name,date("Y-m-d H:i:s",time()) ));
 // DB切断
 $this->db->disconnect();
}
0548nobodyさん02/09/10 17:05ID:20uIzqy9
↑DBになるべく依存しないようにStatementを使いたいのです。
自分のイメージ的には、JavaのJDBCの様に使いたいのです。

よろしくお願いします。
0549nobodyさん02/09/10 22:04ID:???
分かんないんだけど、何が問題なわけ?

日付のフォーマットが問題なら、
フォーマットするwrapper関数みたいのを作ればいいじゃん。

100% RDBMS依存を無くしたいなら PEAR に contribute しる。
0550nobodyさん02/09/10 22:55ID:ecEmpk8F
>>548
日付をフォーマットしたいのか?
to_char() 使え。逆の関数もあるぞ。
Postgres 提供の関数だから、SQL 中に記述できるぞ。
0551nobodyさん02/09/11 06:26ID:MyJQslI1
>>548
PostgreSQLはよくわからんのだが、
date("Y-m-d H:i:s",time())
DATE型は「年月日」までじゃないか?入力形式。
H:i:s は無視されるだろ。つか「フィールドの型がちがうぞ!エラー」じゃないか?
時分秒を扱うならTIMESTAMPにすれば?
0552nobodyさん02/09/12 03:22ID:r6MxR56R
現在使用してる容量ってどうやって調べるの?
0553nobodyさん02/09/12 11:57ID:???
du
0554nobodyさん02/09/12 12:18ID:r6MxR56R
>>553
データファイルはどこにあるの?
0555nobodyさん02/09/12 12:43ID:???
/usr/local/pgsql/data
0556nobodyさん02/09/13 17:18ID:39GWJCRQ
Postgres 7.1.2 とAccess2000 を使っているものですが、
平分パスワードで接続できるのですが暗号パスワードで接続できません。
つまりpg_hba.confでcryptとした後接続できません。
どうすればいいんでしょうか?
そもそもパスワード暗号化は可能でしょうか?
0557nobodyさん02/09/13 20:30ID:???
ODBCどらいばがサポートしている方法しかつかえないっしょ。
ドキュメント見れ。
055855702/09/13 22:28ID:???
そーすみて見たら、ODBCドライバでは
生パスワードとMD5でエンコードしたのしかサポートしてないんだね。
TODOリストみても「やる気有りません」ってかんじでにんともかんとも。
 src/interface/odbc/connection.c
 src/interface/odbc/TODO.txt

というわけで、ODBCつかって平分のパスワードが嫌ならmd5を使えって事で。
0559nobodyさん02/09/17 10:12ID:???
>>556
うちはcse使ってるんですが、やっぱりcryptが使えないです。
pg_hba.confでpasswdに設定してファイル名を指定しない場合は
pg_shadowからパスワードを読むのですが、
暗号化されているのかどうかはなはだ疑問です。
0560nobodyさん02/09/17 18:00ID:???
tcpdumpで見てみれば?
0561nobodyさん02/09/18 10:25ID:???
>>559
っつーか 'passwd'を設定している限り平文だよ。
いいから'md5'って書いてみそ。
0562nobodyさん02/09/20 18:55ID:/MLJ70M7
PostgreSQL で、指定時刻になるとSQLを実行したりストアドを実行するような機能はありませんか。
オラクルやSQL Serverにはあって重宝していたんですが・・・
0563nobodyさん02/09/20 19:58ID:M7U2JFRI
>>562
cron + psql じゃダメ?
056456202/09/21 00:32ID:???
>>563
psqlでsqlを直接実行することができるのですか?
(もしくは、指定ファイルにSQLを書いてそれを実行するとか………)
0565ID 変わってるだろうけど、56302/09/21 00:40ID:NjgR42bS
>>564
少なくとも、別ファイルに記述した SQL を
psql に読ませて実行することはできる。
方法はマニュアルに書いてあるから調べてごらん。

私の場合、テスト用 DB 構築 SQL を書いたファイルを用意して、
テストするたびに CRAETE TABLE からやってる。
0566名無しさん@XEmacs02/09/21 01:35ID:???
-cだ
0567nobodyさん02/09/22 21:46ID:6gZmFq4J
psql database < some.sql
0568nobodyさん02/09/22 22:16ID:auOB9C4f
windowsでtcl入れてpgaccess使っているんですが、
Preferencesの設定が保存されなくなってしまいました。
以前のWindowsNative版の時は設定保存できましたが、
Cygwinにしたら保存できなくなったようです。
お助けください。
0569 02/09/25 00:09ID:???
オライリーのマンモス本買う香具師いる?
0570nobodyさん02/09/25 01:31ID:???
一応買う予定っす。内容がどの程度「practical」かによるけど。
0571nobodyさん02/09/25 18:44ID:GgIwIpkD
Vine Linx2.5、PostgreSQL7.2でPostGISをインストールしようと
頑張ってるんですが、JDBCの部分でつまづいてしまっています。
jdbcのディレクトリでmakeすると、postgis.jarができるようなことが
マニュアルに書いてあるのですが、何故かできません。
(http://postgis.refractions.net/docs/x168.html)
makeは問題なく完了しているようなのですが…
どこが問題なのでしょうか…?
0572nobodyさん02/09/25 21:21ID:???

CGI+PostgreSQLで遊んでみようとおもってるのですが、
データ更新中 or セットの2つのテーブルのうち1つだけ
更新した後にブラウザの停止ボタンを押した場合とか
どうなるんですか?
0573nobodyさん02/09/25 21:36ID:???
トランザクション
0574nobodyさん02/09/25 22:14ID:???
ソースの中でHTML出力より先にSQLがcloseされていたら終わり
0575nobodyさん02/09/26 10:22ID:???
>>574

わけわかりません。
0576nobodyさん02/09/27 00:15ID:???

___|____
aaa|mona
aab|mona
aac|mona
aaa|giko
aab|giko
abc|mora
というテーブルでaaa aab aacを指定するとmona(だけ)を表示するような
selectの書き方を教えてください。
0577nobodyさん02/09/27 00:30ID:???
>というテーブルで・・・

どういうテーブルか説明しないで「というテーブルで」ってキミ!
0578nobodyさん02/09/27 00:37ID:???

>577
スミマセン。
何を説明したらいいのか分かりませんが。。。
テーブル名、カラム名は何でもいいです。
table baka ( foo text, bar text )
0579hmk02/09/27 00:51ID:QE9TB9SP
>>576
>aaa aab aacを指定すると
の意味が分からない。もっと具体的に書きなさい。
058057602/09/27 01:11ID:???

分かると思ってハショりすぎました。教えて君の悪いパターンですね。
スミマセン。

select bar from baka where foo ~* '^aaa'とかするとmona gikoが表示されますよね?
これをaaa aab aacをAND検索してmonaだけがひっかかるようにしたいんです。

PerlでPgを使ってるので外部プログラムを使ってAND検索を実現する方法でもいいです。
0581hmk02/09/27 01:24ID:QE9TB9SP
>>580
ANDじゃなくてOR検索でしょ。。。

SELECT bar FROM baka WHERE foo='mona' AND bar IN ('aaa','aab',aac');
----
mona
mona
mona

SELECT DISTINCT bar FROM baka WHERE foo='mona' AND bar IN ('aaa','aab',aac');
----
mona

加茂。
■ このスレッドは過去ログ倉庫に格納されています