MySQL like用法

MySQL LIKE 语法

LIKE运算符用于WHERE表达式中,以搜索匹配字段中的指定内容,语法如下:

WHERE column LIKE pattern

WHERE column NOT LIKE pattern

在LIKE全面加上NOT运算符时,表示与LIKE相反的意思,即选择column不包含pattern的数据记录

LIKE通常与通配符%一起使用,%表示通配pattern中出现的内容,而不加通配符%的LIKE语法,表示精确匹配,其实际效果等同于 = 等于运算符

LIKE使用示例

下面是一个使用LIKE查询的数据的例子:

SELECT * FROM user WHERE username LIKE '小%';

返回的查询结果:

上面这个例子是找出所有username以"小"开头的记录

注意:小%表示以小开头,而后面可以是任意字符,同样,%小,表示以”小”结尾,而%小%则表示包含“小”这个字符(并一同包含"%小"和"小%"这两种情况)

MySQL LIKE 大小写

MySQL LIKE 匹配字符的时候,默认情况下是不区分大小写的,如果在需要区分大小写的时候,可以加入BINARY操作符:

SELECT * FROM username WHERE LIKE BINARY '%azz%'

SELECT * FROM username WHERE LIKE BINARY '%Azz%'

MySQL LIKE 中文匹配

由于数据存储编码问题,在某些情况下,MySQL进行LIKE搜索返回的数据除了符合要求的数据外,往往还会返回许多不相干的数据,这时候也需要在LIKE后面加上BINARY操作符进行二进制比较

SELECT * FROM username WHERE LIKE BINARY '%小%'

注意:

当LIKE匹配时加上BINARY操作符之后,则会严格区分英文大小写,因此检索的内容中如果出现中英文混合且需要忽略英文大小写的时候,就会遇见问题,这个时候可以引入MySQL中的UPPER()和COUNT()函数:

UPPER() :将英文字符转成大写,同UCASE()

CONCAT():将多个字符串连接成一个字符串

所以,当我们要进行中英文混合匹配检索且要忽略英文大小写时候,可以用下面的语句:

SELECT * FROM username WHERE UPPER(username) LIKE BINARY CONCAT('%',UPPER('a中文b'),'%');

LIKE 的效率

LIKE运算符要对字段数据进行逐一扫描匹配,实际执行的效率比较差

本文转自 https://www.cnblogs.com/leeyongbard/p/9379255.html,如有侵权,请联系删除。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

mysql中like用法

like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\

mysql like查询(模糊查询)

在结构化查询语言中,LIKE语句有着至关重要的作用。  LIKE语句的语法格式是:select\from表名where字段名like对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。  A:%包含零个或多个字符的任意字符串:1、LIKE'Mc%'将搜索以字母Mc开头的所有字符串(如M

SQOOP导入mysql数据库乱码

一、mysql中的编码mysql show variables like 'collation_%';| Variable_name | Value |

TP5框架whereor

whereOr方法Db::table('think_user')where('name','like','%thinkphp')whereOr('title','like','%thinkphp')find();多字段相同条件的OR查询可以简化为如下方式: