これはすごい LIKE 検索の書き方なのか?と幻惑された話

日ごろからバリバリ SQL を書かれている方はこのエントリーを読まずあっちへ行ってください(笑)

マスタの検索画面で、空白で区切られた文字列で複数キーワード検索・・・という要件があって、(他人が作ったプログラムじゃけど)仕様変更の対応とかでソース触ってたら、その複数キーワード検索のプログラムが、

商品名 LIKE '%カレー%うどん%'

みたいな SQL を吐くのよ。

俺は日ごろそんなに SQL を触りまくってるわけではないので、

「おお!こう書くと、
商品名 LIKE '%カレー%' AND 商品名 LIKE '%うどん%'
と同じ動きをするのか!!」

なんて感動しちゃったのよね。

いや、違う(笑)

これだと「カレーうどん 2食入り」とか「大盛カツカレーうどん」はヒットするけど、「うどん屋さんのスープカレー」はヒットせんやん!
よく考えたら、% は単なる LIKE 検索時のワイルドカード文字やん!!(^^;

正規表現で /.*?カレー.*?うどん.*?/ って書いてるのと一緒やあ。

日ごろ、'ほげ%'(前方一致)、'%ほげ'(後方一致)、'%ほげ%'(部分一致)みたいにひとつの組み合わせだけで使うことが多いから、文言の中にいくつも % が含まれてたら、ついつい「お、なんかすごいことっやってる!?」って幻惑されるわ(^^;

そしてこれはもちろんバグだったので、

商品名 LIKE '%カレー%' AND 商品名 LIKE '%うどん%'

という SQL を吐くように直しましたとさ・・・という話(笑)

トラックバック(0)

このブログ記事を参照しているブログ一覧: これはすごい LIKE 検索の書き方なのか?と幻惑された話

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/5754

コメントする

このブログ記事について

このページは、shinodaが2020年11月12日 19:17に書いたブログ記事です。

ひとつ前のブログ記事は「初めての「ラー麺ずんどう屋」」です。

次のブログ記事は「買い物帰りに、ちょっと三蒲港に寄ってみた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら