2011-11-16 101 views
0

我試圖解決拉從表中的所有數據,並通過它循環通過它。這裏是我當前的查詢:MySQL喜歡反轉

SELECT 
* 
FROM 
ExampleTable 
WHERE 
StringContains LIKE "%[email protected],mniu,mk,mkjh%" 

ExampleTable.StringContains有看起來像「[email protected]」,「[email protected]」值等

這並不匹配,因爲只喜歡找到列值的子字符串,而不是其他方式。任何關於命令查找表值是傳遞字符串的子字符串的想法?

+0

你試過有它的順序:「[email protected]」 LIKE StringContains? –

回答

2

只是要在opposit順序LIKE。既然你要添加這些%你必須concatenate領域的第一:

SELECT * 
FROM ExampleTable 
WHERE "[email protected],mniu,mk,mkjh" LIKE CONCAT('%', StringContains, '%'); 
+0

關於需要添加%符號的評論很有幫助,我沒有第一次嘗試,然後再次嘗試。它們表示匹配StringContains以及其兩側的其他任何內容,所以我們可以在那裏匹配測試字符串。 –

3

試試這個:

SELECT * 
FROM ExampleTable 
WHERE "[email protected],mniu,mk,mkjh" LIKE 
     CONCAT("%",StringContains,"%") 

關鍵是要認識到,列變量只是表示一個字符串,等等語句總是在形式

"stringA" LIKE '%stringB%'

比較兩個字符串

通常人們使用它來搜索「整個」數據庫字段字符串中包含的字符串的「部分」,但您可以輕鬆切換它們。您需要的唯一額外工具是CONCAT語句,因爲您希望數據庫字段成爲部分而不是整體。該CONCAT聲明建立與周圍的數據庫字段字符串%的字符串,以及參數的字符串形式是相當於現在

"stringB" LIKE "%stringA%"

+0

+1你們好像閃電 –