SQL: 2020年11月アーカイブ

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

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

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

みたいな SQL を吐くのよ。

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

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

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

いや、違う(笑)

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

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

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

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

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

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

このアーカイブについて

このページには、2020年11月以降に書かれたブログ記事のうちSQLカテゴリに属しているものが含まれています。

前のアーカイブはSQL: 2013年2月です。

次のアーカイブはSQL: 2023年8月です。

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

月別 アーカイブ

電気ウナギ的○○ mobile ver.

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