【问题标题】:MySQL LIKE Usage One Than More ColumnsMySQL LIKE 使用多于一列
【发布时间】:2017-06-16 14:42:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql search sql-like


    【解决方案1】:

    你可以使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多