MySQL单表多字段模糊查询解决方法
来源:互联网 发布:win7 for mac 安装iso 编辑:程序博客网 时间:2024/05/17 00:06
MySQL单表多字段模糊查询解决方法
(2012-02-25 09:53:07)转载▼
标签:
it
分类: php在最近的一个项目需要实现在单表中对多字段进行多个关键字的模糊查询,但这数个关键字并不一定都存在于某个字段
例如现有table表,其中有title,tag,description三个字段,分别记录一条资料的标题,标签和介绍。然后根据用户输入的查询请求,将输入的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录。
可目前遇到的问题是,这些关键字是可能存在于三个字段中的任意一个或者多个,但又要求三个字段必须包含所有的关键词。如果分别对每个字段进行模糊匹配,是没法实现所需的要求,由此想到两种方法:
在插入记录的同时,将需要进行多字段模糊查询的字段合并成一个字串并加入到一个新的字段中,然后对这个新字段进行模糊查询。
使用全文检索,但是这需要用到中文分词或者将汉字转化为拼音(拆分汉字是不可行的,MySQL默认FT最小字节为4),而且并不利于今后的维护。
在网上爬了两天,对此问题的处理都没有找到满意的解决方法,最后在《MySQL权威指南》中翻到了CONCAT的使用方法,在书中的对CONCAT的描述是:
CONCAT(str1,str2,…)
返回值:由全体出入参数合并在一起而得到的字符串。只要输入的参数中有NULL值,就返回NULL。CONCAT允许只有一个输入参数的情况。
因此,前文的查询可以通过下面这个SQL查询实现
SELECT * FROM `magazine` WHERE CONCAT(`title`,`tag`,`description`) LIKE ‘%关键字%’
文章来源:http://www.raychou.com/chou/posts/63.htm
0 0
- MySQL单表多字段模糊查询解决方法
- mysql 单表多字段模糊查询解决方法
- MySQL单表多字段模糊查询
- MySQL单表多字段模糊查询
- 单表多字段MySQL模糊查询的实现
- MySQL多字段模糊查询
- MySQL多字段模糊查询
- mysql多关键字多字段模糊查询
- MySQL多关键字多字段模糊查询
- MySQL简单实现多字段模糊查询
- mysql 多字段关键词模糊查询
- 单表多字段查询
- php mysql ajax 单表多字段多关键词查询
- sql2005多字段模糊查询
- SQL多字段模糊查询
- 多字段模糊查询方法
- sqlite3多字段模糊查询
- thinkphp多字段模糊查询
- UITableView学习笔记
- 自定义Adapter中对ListView的优化
- 关于前端开发的20篇文档与指南
- HDU-LELE的RPG难题-排列组合
- iOS类别的扩展
- MySQL单表多字段模糊查询解决方法
- Spring bean的作用域
- 在android中实现DES加密
- 最爱的城市
- #294 (div.2) E.A and B and Lecture Rooms
- 小控件集合
- Codeforces Round #294 (Div. 2) E
- 解决ADT和SDK版本不一致问题
- Cocos2d-x 3.2 onEnter与onEnterTransitionDidFinish的区别