js objectmysql2个字段还会map_MySQL单表多字段模糊查询解决⽅法
⼜折磨半天concat(。。。
SELECT
`id`,`weixin_id`,`user_name`,`sex`,`area_id`,`address_near`,`phone`,`create_time`,`import_user_name`,`call_phone_num`,`browse FROM `f_share_info` WHERE ( concat(phone, IFNULL(share_detail, ''),IFNULL(search_save_content, ''), IFNULL(user_name,
'')) like '%186********%' ) ORDER BY id desc LIMIT 0,30;
在最近的⼀个项⽬需要实现在单表中对多字段进⾏多个关键字的模糊查询,但这数个关键字并不⼀定都存在于某个字段
例如现有table表,其中有title,tag,description三个字段,分别记录⼀条资料的标题,标签和介绍。然后根据⽤户输⼊的查询请求,将输
⼊的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录。
可⽬前遇到的问题是,这些关键字是可能存在于三个字段中的任意⼀个或者多个,但⼜要求三个字段必须包含所有的关键词。如果分别对每
个字段进⾏模糊匹配,是没法实现所需的要求,由此想到两种⽅法:
个人简介范文
在插⼊记录的同时,将需要进⾏多字段模糊查询的字段合并成⼀个字串并加⼊到⼀个新的字段中,然后对这个新字段进⾏模糊查询。
使⽤全⽂检索,但是这需要⽤到中⽂分词或者将汉字转化为拼⾳(拆分汉字是不可⾏的,MySQL默认FT最⼩字节为4),⽽且并不利于今后
的维护。
在⽹上爬了两天,对此问题的处理都没有到满意的解决⽅法,最后在《MySQL权威指南》中翻到了CONCAT的使⽤⽅法,在书中的对CONCAT的描述是:
CONCAT(str1,str2,…)
返回值:由全体出⼊参数合并在⼀起⽽得到的字符串。只要输⼊的参数中有NULL值,就返回NULL。CONCAT允许只有⼀个输⼊参数的情
况。
groupby和orderby连用因此,前⽂的查询可以通过下⾯这个SQL查询实现
SELECT * FROM `magazine` WHERE CONCAT(`title`,`tag`,`description`) LIKE ‘%关键字%’
在最近的⼀个项⽬需要实现在单表中对多字段进⾏多个关键字的模糊查询,但这数个关键字并不⼀定都存在于某个字段,查了⼀下有点收获
select * from table where `字段`='值' and concat(`title`,`content`) like '%关键字%'mysql语句多表查询
今天有朋友问
引⽤原⽂:
请教⼀个问题:
我在mysql中建⼀个表,三百多万条记录,⼤约200mb⼤⼩,简单的模糊查询就很慢,请问有什么解决办法吗??也许 col_XX 会达到20
个左右.
他的SQL如下:
1  select * from table_XX where col_1
like '%条件%' or col_2 like '%条件%' or col_3 like '%条件%'or col_4 like
'%条件%'
⾸先,需要说明的是,以上的SQL语句,在任何类型的数据库上执⾏都不会使⽤到索引,意味着逐⾏扫描。
数据库只能做以下:
在建好联合索引 col_1,后,
1    select * from table_XX where col_1 like '条件%' or col_
2 like '条件%'
or col_3 like '条件%'or col_4 like '条件%'
在必须以col_1作为where第⼀个条件的前提下,以上条件能使⽤到索引,也就是说最前⾯不能⽤%,只能以“条件”开头.
如果⼀定要实现 like '%条件%' ,数据库⽆法做到。
以下是实现的可选⽅案:
MySQL单表多字段模糊查询解决⽅法
例如现有table表,其中有title,tag,description三个字段,分别记录⼀条资料的标题,标签和介绍.然后根据⽤户输⼊的查询请求,将输⼊的字串通过空格分割为多个关键字,再在这三个字段中查 ...
MySQL单表多字段模糊查询
今天⼯作时遇到⼀个功能问题:就是输⼊关键字搜索的字段不只⼀个字段,⽐如 我输⼊: 超天才 ,需要检索出 包含这个关键字的 name
. company.job等多个字段.在⽹上查询了⼀会就到了答案. ...
Mysql 之实现多字段模糊查询
在⼀个table中有省,市,县,期,栋,单元,室⼏个字段,然后⽤户输⼊⼀个地址从表中的字段拼接起来进⾏模糊查询. 解决办法: 中CONCAT的使⽤⽅法,在书中的对CO ...
MySQL简单实现多字段模糊查询
我所做的商城项⽬前些时提了新需求,要求前台搜索商品除了能通过商品名称搜索到以外,还可以通过别个信息搜索,⽐如:商品编号.详情内容描述等等,类似于全⽂搜索了.我⾸先想到的就是lucene,但是对代码这样 ...
python 3 mysql 单表查询
python 3 mysql 单表查询 1.准备表 ployee 员⼯id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int ⼊职 ...
Mysql 单表查询-排序-分页-group by初识
Mysql 单表查询-排序-分页-group by初识 对于select 来说, 分组聚合(((group by; aggregation), 排序 (order by** ), 分页查询 (limi ...
Mysql 单表查询where初识
Mysql 单表查询where初识 准备数据 -- 创建测试库 -- drop database if exists student_db; create database student_db ch ...
Mysql 单表查询 ⼦查询 关联查询
数据准备: ## 学院表create table department( d_id int primary key auto_increment, d_name varchar(20) not nul ...
mySQL单表限制⼤⼩
MySQL单表⼤⼩的限制在⽬前的技术环境中,由所在主机的OS上⾯的⽂件系统来界定⽽不是由MySQL数据库本⾝来决定了. 在⽼版本的MySQL 3.22中,MySQL单表⼤⼩为4GB,当时的MySQL的 ...
随机推荐
虚拟机Linux----Ubuntu1404----root登录设置
说明:在安装玩1404这个版本的ubuntu后,默认也是看不到root登录的,也需要修改配置⽂件,但是修改的⽂件和1204不太⼀样. 1.shell窗⼝,普通⽤户⾸先登录,切换到root⽤户下: su ...
【OpenJudge 1665】完美覆盖
Scala class的构造⽅法与继承
有java背景的⼈,很清楚java是如何定义构造⽅法以及继承的.在scala⾥⾯,继承和java有些相似.但是构造⽅法的定义,就不⼤⼀样了,应该说是差别还是很⼤的.在java⾥⾯,定义构造⽅法,就是定 ...
db.class的实现类
文本框怎么设置长和宽
单例类,能操作数据库,能拼接sql语句,能写⼊⽇志 <?php class mysql extends db{ private static $ins=null; private $conn=n ...
Fast特征检测
⼀.Fast算法 1.基本原理 Fast特征点检测feature2D原理是在圆周上按顺时针⽅向从1到16的顺序对圆周像素点进⾏编号.如果在圆周上有N 个连续的像素的亮度都⽐圆⼼像素的亮度Ip加上阈值t还 ...
MVC验证07-⾃定义Model级别验证
原⽂:MVC验证07-⾃定义Model级别验证 在⼀般的⾃定义验证特性中,我们通过继承ValidationAttribute,实现IClientValidatable,只能完成对某个属性的⾃定义验证. ...
effective c++ Item 48 了解模板元编程
1. TMP是什么? 模板元编程(template metaprogramming TMP)是实现基于模板的C++程序的过程,它能够在编译期执⾏.你可以想⼀想:⼀个模板元程序是⽤C++实现的并且可以在 ...
Centos 7系统启动修复
网页模板编辑器author:JevonWei 版权声明:原创作品 错误界⾯ 这个错误界⾯应该为/boot⽂件损坏,故应该修复/boot和grub2 修复/boot及grub 1 . chroot /mnt/sysi ...
CCIE-交换路由复习笔记
交换 考点: 1.trunk link(基础) 2.vtp 3.vlan 4.stp rstp mstp 5.hsrp vrrp Trunk link: 修改封装模式 802.1q ...
IDLE打开Python报错 api-ms-win-crt-runtimel1-1-0.dll缺失的解决⽅案

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。