MySQL LIKE使用一列以上

时间:2017-06-16 14:42:26

标签: mysql search sql-like

我想从我的桌子中选择记录。我想使用这个查询:

select * 
from crawler.crawler_data 
WHERE name_surname, category, description LIKE "%de%";

但是MySQL不接受这个查询。我想用LIKE搜索所有列。如何编写此查询以使用LIKE语句搜索多个列?

1 个答案:

答案 0 :(得分:0)

您可以使用CONCAT

SELECT * FROM crawler_data WHERE CONCAT(name_surname, category, description) LIKE "%de%";

因此,它将您要检查的所有列连接到一个列中。

有时候这可能是不合适的,你正在寻找的字符串可以通过两列之间的分割找到,所以给你一个误报。

要解决此问题,您可以使用{strong> 与分隔符连接CONCAT_WS。所以:

SELECT * FROM crawler_data WHERE 
CONCAT_WS('-',name_surname, category, description) LIKE "%de%";

显然,将分隔符值(-)设置为您在搜索词(de)中不具有的某种字符串。

参考:MySQL Manaul