• 締切済み

where句のlikeと=の違いについて

Postgresバージョン7.1.1からバージョン7.4.6にしたところ困ったことがあります。 テーブル名: hoge カラム名: col (←varchar(12)) データの中身はまるっきり同じ物が入っています。 という環境です。 そこで、SQLを実行するとバージョンによって結果が異なり不可解なのです。何か分かることがありましたら返事をお願いします。 [実行したSQL] select col from hoge where col = 'コル' select col from hoge where col like 'コル' [7.1.1] 共に、答えは一つだけ'コル'が表示されます。 [7.4.6] likeの時は'コル'が一つだけ表示されます。 =の時は何十個か出てきます。 以上、宜しくお願い致します。

みんなの回答

noname#20623
noname#20623
回答No.1

私の不勉強だったら申し訳ないですが、 Likeって「%」とかと対で使うのでは有りませんでしたっけ? あいう あう いあいう ってのがあったとして、'%あい'だと あいう が対象になって '%あい%'だと あいう いあいう が抜き出されるって言う・・・

agharta
質問者

お礼

おそらく、PostgreSQLのバージョンをアップしたせいか なおりました。お騒がせしました。

agharta
質問者

補足

回答ありがとうございます。 '%あい'の場合、'うあい'が引っかかると思います。 また、like文の場合カラムcolがインデックス化されても、シーケンシャルに検索かける様に思います。 そうすると、なぜイコールで同じ結果が帰ってこないのかやはり疑問です

関連するQ&A