MySQL-模糊查询

今天遇到一个问题,纠结了很久的,就是我现在要查询一类数据,但是这类数据的类别有很多种,怎么能够通过一个类别精确的查找这些数据呢?

举个例子:现在一个公司表,有各种类型的公司,但是一个公司又有很多类型标签,公司类别用char类型的数据格式1,2,3,4,不是int,开始的想法是先查,再用PHP进行分类,但是想想效率真的很差,各种判断+各种分组,最后就想在SQL上突破,最后用like解决了,就是模糊查询,通过一个类别去匹配一组类别,SELECT * FROM table catid like ‘%".$cid."%‘。 巧用SQL有时候能解决很多程序上的问题。

时间: 2024-11-16 05:45:51

MySQL-模糊查询的相关文章

Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm

这篇文章主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果的解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 项目开发中,在做Mybatis动态查询时,遇到了一个问题:MySQL在进行LIKE模糊查询时,输入英文可以正常检索出结果,但是输入中文后检索得到的结果为空. 由于是使用GET方式请求,所以为了确保中文不乱码,在控制台接收到请求参数后,对中文进行了一次编码. ? 1 2 3 4 5 try { realName = new String(realNam

MySql模糊查询like通配符使用详细介绍

MySql模糊查询like通配符使用详细介绍 转载:http://chenpeng.info/html/2020 MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式. 一.SQL模式 SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符).在 MySQL中,SQL的模式缺省是忽略大小写的.下面显示一些例子.注意在你使用SQL模式时,你不能使用=或!=:而使用LIKE或NOT LIKE比较操作

MySQL模糊查询:LIKE模式和REGEXP模式

MySQL模糊查询提供了两种模式:LIKE模式和REGEXP模式. LIKE模式 LIKE模式是使用的LIKE 或 NOT LIKE 比较运算符进行模糊查询. SELECT 字段 FROM 表 WHERE 字段 LIKE[NOT LIKE] '条件' 针对条件,有以下几种通配符: 通配符 含义 % 表示任意一个或多个字符,可匹配任意类型和长度的字符 _ 表示任意单个字符,匹配单个任意字符 ESCAPE 关键字定义转义符.在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符. 示例: #

mysql模糊查询 like/REGEXP

原文:mysql模糊查询like/REGEXP 增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课. like模式 like意思是长得像,有两个模式:_和% _表示单个字符,通常用来查询定长的数据,如查出所有姓王的三个字的人名,假设姓名列名为name,注意“王”后面有两个_ select name from 表名 where name like '王__'; %表示0个或多个任意字符,如查出所有姓王的人名 select name fr

mysql模糊查询特殊字符(\,%和_)处理

/** * sql模糊查询特殊字符(\,%和_)处理 * * @param string $str * @return string */ public static function like_search_specialchars($str){ return str_replace(array('\\', '%', '_'), array('\\\\', '\\%', '\\_'), $str); }

mysql模糊查询的优化方法--亲自实践

数据有4W多条,不多,但是模糊查询 起来特别慢. 1,尝试过用 select * from (select * from a union all select * from b...很多表union) as tempTable where name like "%a%" and person_id like "%1%",发现太慢了.. 2,尝试使用具体的字段,而不是*,即 select id,name,person_id from (select id,name,p

mysql模糊查询表里的json格式的数据-177

mysql里查询 json 数据 1.mysql里有个字段存储的是json格式的数据, 2.现在需要从页面传递参数到php再进行搜索匹配关键字, 3.将关键字页json_encode后,去like匹配这个字段,匹配不到 解决方案: 1.只针对中文搜索,存的数据一样是json,josn里面的中文一般是unicode编码的,将关键字编码一下. 2.在mysql里,"\" 是需要转义的.两种解决办法: a)因此使用"\\"来查询,数据依然是空.(mysql斜杆转义之后,会

MySQL模糊查询中通配符的转义

sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符. 如果我们想要模糊查询带有通配符的字符串,如“60%”,“user_name”,就需要对通配符进行转义.如下,斜杠后面的%就不再是通配符,斜杠之前的%仍然起通配符作用. select percent from score where percent like '%0/%' escape '/';

MySql—模糊查询

实例: SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下: 1.LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden). 2.LIKE '%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer.Stringer). 3.LIKE '%en%' 在任何位置包含字母 en 的所有字符串( Bent.enD.Mden). 4.LIKE '_heryl' 以字母 heryl 结尾的所有六个字母的名称(如 Cheryl.Sheryl

MySql 模糊查询、范围查询

实例: SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下: 1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden). 2.LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer.Stringer). 3.LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet.Green.McBadden). 4.LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Ch