我想从我的桌子中选择记录。我想使用这个查询:
select *
from crawler.crawler_data
WHERE name_surname, category, description LIKE "%de%";
但是MySQL不接受这个查询。我想用LIKE
搜索所有列。如何编写此查询以使用LIKE
语句搜索多个列?
答案 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