MySQL like用法

Peter20
• 阅读 1048

MySQL LIKE 语法

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

WHERE column LIKE pattern

WHERE column NOT LIKE pattern

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

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

LIKE使用示例

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

MySQL like用法

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

返回的查询结果:

MySQL 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,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
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
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Peter20 Peter20
3年前
mysql like查询(模糊查询)
在结构化查询语言中,LIKE语句有着至关重要的作用。  LIKE语句的语法格式是:select\from表名where字段名like对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。  A:%包含零个或多个字符的任意字符串:1、LIKE'Mc%'将搜索以字母Mc开头的所有字符串(如M
Wesley13 Wesley13
2年前
thinkphp3.2.3模板渲染支持三元表达式
thinkphp3.2.3模板渲染支持三元表达式{$status?'正常':'错误'}{$info'status'?$info'msg':$info'error'}注意:三元运算符中暂时不支持点语法。如下:           <divclass"modalhidefade"id'myModa
Easter79 Easter79
2年前
SQOOP导入mysql数据库乱码
一、mysql中的编码mysql show variables like 'collation_%';| Variable_name | Value |
Easter79 Easter79
2年前
TP5框架whereor
whereOr方法Db::table('think_user')where('name','like','%thinkphp')whereOr('title','like','%thinkphp')find();多字段相同条件的OR查询可以简化为如下方式:
Stella981 Stella981
2年前
SQOOP导入mysql数据库乱码
一、mysql中的编码mysql show variables like 'collation_%';| Variable_name | Value |
Stella981 Stella981
2年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
小万哥 小万哥
5个月前
SQL LIKE 运算符:用法、示例和通配符解释
SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符:百分号%代表零个、一个或多个字符。下划线代表一个单个字符。以下是LIKE运算符的用法和示例:示例选择所有以字母"a"开头的客户:sqlSELECT
小万哥 小万哥
5个月前
SQL 通配符:用于模糊搜索和匹配的 SQL 关键技巧
SQL通配符字符通配符字符用于替代字符串中的一个或多个字符。通配符字符与LIKE运算符一起使用。LIKE运算符用于在WHERE子句中搜索列中的指定模式。示例返回所有以字母'a'开头的客户:sqlSELECTFROMCustomersWHERECustome