2013-10-29 210 views
0

MySQL query String containsMySQL查詢字符串包含相反

您好,我試圖讓一個MySQL的查詢,查找其中包含從主路線我設置字符串中的列值。所以如果我的主字符串是'1234567',我希望它返回列值爲'1','2'等的任何結果......上面的鏈接和我能找到的一樣接近,但我需要它在相反的方向進行比較。

例如:

WHERE '%{$needle}%' LIKE `column` 
+0

認爲如果你想尋找'1','2'等等,你需要將它分成不同的字符 –

回答

0

如何

WHERE ? LIKE CONCAT('%', `column`, '%') 

其中?是因爲你使用PDO或MySQLi擴展,右有您的值(1234567)綁定參數佔位符?

當然,您絕對不會使用不推薦使用的MySQL擴展。

+0

就像一個魅力!謝謝 – user2934055

1

你有點含糊被存儲在不同的值,其中(文本使用瞭如「主路線」,但示例代碼使用不同的名稱)。

你可以用regexp做你想做的。下面是一個例子:

select 'abcd6efg' regexp concat('.*[', '1234567', '].*') 

坦率地說,是regex在一個重要的方面從like不同。 regex如果左側字符串的任何部分匹配,則返回true,而對於like,整個字符串必須匹配。所以,以下也適用:

select 'abcd6efg' regexp concat('[', '1234567', ']') 

我喜歡把明確的通配符,以避免錯誤兩者之間切換時。

您可以查看正則表達式文檔here