みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

REGEXPを使った検索文をスマートにできますか

初心者ではございますが、質問失礼いたします。

下記のようなSQL文を使っています。

例文:
SELECT table1.no, table1.titile, table1.date
FROM table1 WHERE (
table1.title REGEXP "りんご" ||
table1.title REGEXP "みかん" ||
table1.title REGEXP "ばなな" ||
.........
AND date > '2013-11-11'
ORDER BY table1.date DESC

table1.titleから、各単語を含むタイトルを全て表示させるもので、
検索する単語は無制限に増える予定です。

現在の文でも結果など特に問題ないのですが、
コードが長くてこれでいいものかと思い探したところ特になかったため、
良い方法をご存知の方がいらっしゃったら・・・という望みで
質問の方させていただきました。

お時間のある際にでもお教えいただければと思います。

もし、上記に変わる表現がない場合は、無いとお教えいただければ助かります。

何卒宜しくお願い致します。

投稿日時 - 2013-11-11 18:07:53

QNo.8343313

暇なときに回答ください

質問者が選んだベストアンサー

実際に動かして確認したわけではありませんが、

WHERE (
table1.title REGEXP "りんご" ||
table1.title REGEXP "みかん" ||
table1.title REGEXP "ばなな" ||
.........
  ↓
WHERE table1.title REGEXP "りんご|みかん|ばなな|........."

これはどうでしょう?

参考URL:http://dev.mysql.com/doc/refman/4.1/ja/regexp.html

投稿日時 - 2013-11-12 09:21:04

お礼

こんな省略の仕方あったんですね!!
早速できました!!
ありがとうございます、スッキリです!!

投稿日時 - 2013-11-12 16:29:14

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

REGEXP を利用しているということは完全一致ではなく部分一致でよいのですよね?
であれば

WHERE table1.title REGEXP "りんご|みかん|ばなな"

で十分では?

投稿日時 - 2013-11-12 09:26:46

お礼

これは知りませんでした。
ありがとうございます。

投稿日時 - 2013-11-12 16:29:28

あなたにオススメの質問