mysql concat实现简单多字段模糊查询

缺乏、安全感 2023-06-11 03:18 32阅读 0赞

背景

之前对于模糊查询使用like,like只能对单字段进行检索,如果使用多字段,必须使用or拼接,这样的话索引就会失效。网上查询大家都使用concat可以进行多个字段检索。

concat

  • 功能

    将多个字符串连接成一个字符串

  • 语法

    CONCAT(str1, str2,…)

注意:返回值,由全体出入参数合并在一起而得到的字符串。只要输入的参数中有NULL值,就返回NULL。concat允许只有一个输入参数的情况。

代码实现

  • mysql单表多字段模糊查询可以通过下面这个sql查询实现

    SELECT * FROM magazine WHERE CONCAT(title,tag,description) LIKE ‘%关键字%’

  • 但是这样有个问题,如果这三个字段中有值为NULL,则返回的也是NULL,那么这一条记录可能就会被错过,怎么处理呢,我这边使用的是IFNULL进行判断,sql改为:

    SELECT * FROM magazine WHERE CONCAT(IFNULL(title,’’),IFNULL(tag,’’),IFNULL(description,’’)) LIKE ‘%关键字%’

发表评论

表情:
评论列表 (有 0 条评论,32人围观)

还没有评论,来说两句吧...

相关阅读