注文

2011-10-27 22 views
1

複数の用語を使用したいときに私は、クエリ注文

SELECT * FROM images WHERE tags LIKE '%example%hello%' 

を持っている私はの「タグ」の欄に「例」と「ハロー」を持っている行を選択するためにデータベースをしたいと思います

'hello、test、example'、 'example、hello、test'またはこの順序の他のバリエーションを持つ行。 これはLIKEを使用しなくても可能ですか?行には、すべてLIKEで指定されたすべてが含まれている必要があります。

EDIT:クエリで 'example'と 'hello'を指定すると、返される行に 'example' 'hello'の両方が含まれている必要があります。あなたが迅速な解決のためのシンプルなORを試みることができる

答えて

2

:あなたの編集に対処するために

SELECT * FROM images WHERE tags LIKE '%example%' OR tags LIKE '%hello%' 

EDIT

、あなたの代わりにANDを使用することができます。

あなたが使用することができ
SELECT * FROM images WHERE tags LIKE '%example%' AND tags LIKE '%hello%' 
+0

申し訳ありません、あなたの投稿時に私の質問に編集しました。 'example'と 'hello'の両方を含むように返されたすべての行が必要です – q3d

+0

ちょうど答えを更新しました:-) – Clive

+0

Thanks Clive、これはうまくいきました。 – q3d

0

FIND_IN_SET

SELECT tags FROM images WHERE FIND_IN_SET('hello', tags) AND FIND_IN_SET('example', tags) 

ただし、タグにカンマの後に空白がないようにする必要があります(その場合は、tags以上のブールチェックを使用する必要があります)。これはLIKEより速いかもしれません。よく分かりません。