2011-10-27 141 views
1

我有查詢訂單查詢LIKE子句

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

我想在數據庫中的「標籤」欄中,選擇具有「例如」和「你好」行任何訂單,如:

「hello,test,example',也包括'example,hello,test'或此訂單的任何其他變體。 這是可能的,即使沒有使用LIKE?這些行必須包含LIKE指定的所有內容。

編輯:例如,當我在查詢中提供'example'和'hello'時,返回的行必須包含'example''hello'。

回答

2

你可以嘗試一個簡單OR一個快速的解決方案:

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

編輯

爲了解決您的編輯,你可以使用AND代替:

SELECT * FROM images WHERE tags LIKE '%example%' AND tags LIKE '%hello%' 
+0

對不起,在發佈時間對我的問題進行了編輯。我需要返回的所有行都包含'example'和'hello' – q3d

+0

剛剛更新了答案:-) – Clive

+0

感謝Clive,此工作。 – q3d

0

你可以使用FIND_IN_SET

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

但是,這需要標籤在逗號後面沒有空格(在這種情況下,您必須在tags或更多布爾檢查上進行替換)。這可能比LIKE更快。我不確定。