0
我想從我的表中選擇記錄。我想要使用此查詢:MySQL LIKE用法一個以上的列
select *
from crawler.crawler_data
WHERE name_surname, category, description LIKE "%de%";
但MySQL不接受此查詢。我想用LIKE
搜索所有列。我如何編寫此查詢來搜索LIKE
陳述中的多個列?
我想從我的表中選擇記錄。我想要使用此查詢:MySQL LIKE用法一個以上的列
select *
from crawler.crawler_data
WHERE name_surname, category, description LIKE "%de%";
但MySQL不接受此查詢。我想用LIKE
搜索所有列。我如何編寫此查詢來搜索LIKE
陳述中的多個列?
您可以使用CONCAT
:
SELECT * FROM crawler_data WHERE CONCAT(name_surname, category, description) LIKE "%de%";
所以它是連接所有的列,你要檢查到一列。
有些時候,這是不適合的,你要找的字符串可以通過兩列之間的分隔找到,所以給你一個誤報。
爲了解決這個問題,你可以使用CONCAT_WS
這是連接具有分隔符。所以:
SELECT * FROM crawler_data WHERE
CONCAT_WS('-',name_surname, category, description) LIKE "%de%";
顯然,分隔符值(-
)設置爲是某種串的,你不會在搜索詞(de
)有。
參考:MySQL Manaul
感謝@馬丁。這是完美的解決方案! –