MySQL query String containsMySQL查詢字符串包含相反
您好,我試圖讓一個MySQL的查詢,查找其中包含從主路線我設置字符串中的列值。所以如果我的主字符串是'1234567',我希望它返回列值爲'1','2'等的任何結果......上面的鏈接和我能找到的一樣接近,但我需要它在相反的方向進行比較。
例如:
WHERE '%{$needle}%' LIKE `column`
MySQL query String containsMySQL查詢字符串包含相反
您好,我試圖讓一個MySQL的查詢,查找其中包含從主路線我設置字符串中的列值。所以如果我的主字符串是'1234567',我希望它返回列值爲'1','2'等的任何結果......上面的鏈接和我能找到的一樣接近,但我需要它在相反的方向進行比較。
例如:
WHERE '%{$needle}%' LIKE `column`
如何
WHERE ? LIKE CONCAT('%', `column`, '%')
其中?
是因爲你是使用PDO或MySQLi擴展,右有您的主值(1234567)綁定參數佔位符?
當然,您絕對不會使用不推薦使用的MySQL擴展。
就像一個魅力!謝謝 – user2934055
你有點含糊被存儲在不同的值,其中(文本使用瞭如「主路線」,但示例代碼使用不同的名稱)。
你可以用regexp
做你想做的。下面是一個例子:
select 'abcd6efg' regexp concat('.*[', '1234567', '].*')
坦率地說,是regex
在一個重要的方面從like
不同。 regex
如果左側字符串的任何部分匹配,則返回true,而對於like
,整個字符串必須匹配。所以,以下也適用:
select 'abcd6efg' regexp concat('[', '1234567', ']')
我喜歡把明確的通配符,以避免錯誤兩者之間切換時。
您可以查看正則表達式文檔here。
認爲如果你想尋找'1','2'等等,你需要將它分成不同的字符 –