zoukankan      html  css  js  c++  java
  • Mysql 之实现多字段模糊查询

    在一个table中有省,市,县,期,栋,单元,室几个字段,然后用户输入一个地址从表中的字段拼接起来进行模糊查询。

    解决办法:

    《MySQL权威指南》中CONCAT的使用方法,在书中的对CONCAT的描述是:

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

    因此,MySQL单表多字段模糊查询可以通过下面这个SQL查询实现:

    selec * from  table  where 1 and CONCAT(省,市,县,期,栋,单元,室) like '%查询的地址%';

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

    selec * from  table  where 1 and CONCAT(IFNULL(省),IFNULL(市),IFNULL(县),IFNULL(期),IFNULL(栋),IFNULL(单元),IFNULL(室)) like '%查询的地址%';
  • 相关阅读:
    代理模式
    装饰模式
    策略模式
    简单工厂模式
    linux下进程相关操作
    散列表(哈希表)
    转载:最小生成树-Prim算法和Kruskal算法
    二叉排序树和平衡二叉树
    堆排序
    快速排序
  • 原文地址:https://www.cnblogs.com/yang-2018/p/9851331.html
Copyright © 2011-2022 走看看