zoukankan      html  css  js  c++  java
  • 简单实现mysql多字段模糊查询

      在后台的项目中,会经常遇到,就是信息的查找,这里就举个简单的例子,如搜索某一个产品的信息,在一个表里面有多个字段,而搜索的内容可能是其中的某个字段,这样只有多字段查询才能实现。

    MySQL多字段模糊查询:指在表单中对多字段进行多个关键字的模糊查询,而这个关键字在所有字段里面的其中之一(也可以关联多表查询)。

      例如:表product里面有四个字段  id、name、title、description 产品的id、名称、标题、介绍,只要输入其中之一的关键字,就能找到该产品的的信息。

      更精确的搜索方法是处理多个关键字的同时搜索,一般的处理方式是按空格将用户输入的字符串进行分割,形成多个关键字,然后在从这几个字段中查找包含这些关键字的记录。

      显然正对某个字段进行单独的查询,这样是不现实的,要实现多字段查询,使用MySQL的concat( )函数:

      语法:  concat(str1, str2, ...)

      返回值:由全体输入参数 str1, str2, ... 合并在一起而得到的字符串。只要输入的参数中有的值为null,concat( )函数就返回null。

      MySQL实现多字段的查询可以怎么写:

    1 select id,name,title,description from product where concat(id,name,title,description) link '%关键字%';

      这样的写法,要保证concat里面的字段 id,name,title,description 的值都不能为null,否则会出现查出的数据不完整。

      如果在建product表的时候,有的字段没有设置成 not null,那么MySQL的多字段搜索sql语句改为:

    1 select id,name,title,description from product where concat(IFNULL(id,''),IFNULL(name,''),IFNULL(title,''),IFNULL(description,'')) link '%关键字%';

      这样就不会出现漏掉的数据。

  • 相关阅读:
    面向对象SOLID原则-设计模式-第2篇
    python 设计模式 开篇 第1篇
    区块链 第1篇 什么是区块链 区块链与比特币的关系 区块链的发展历史 应用领域
    HTTP协议六种请求:GET,HEAD,PUT,DELETE,POST
    python垃圾回收机制
    类的MRO属性 C3算法
    Vue第六篇 element-ui 项目管理工具npm webpack 启Vue项目vue-cli
    《EffctiveJava》泛型
    Kafka总结
    Windows 关闭端口号
  • 原文地址:https://www.cnblogs.com/wsybky/p/8732918.html
Copyright © 2011-2022 走看看