MySQL模糊查询
先看下数据库表
一.%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百 分号(%%)表示。
注:like '%帅%' ----------------->(把包含帅的记录查询出来)
SELECT *
FROM user
WHERE
NAME LIKE '%帅%'
注:like '%想%' and link '%你%' ------------------------->(查询包含想也包含你的记录)
SELECT *
FROM user
WHERE
NAME LIKE '%想%'
AND NAME LIKE '%你%'
注:link '%隔%王%' -------------------------------->(查询包含隔王的记录,并且隔要在王之前)
SELECT *
FROM user
WHERE
NAME LIKE '%隔%王%'
二. _: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
注:查询包含“见”这个字的记录,且长度为3
SELECT *
FROM user
WHERE
NAME LIKE '_见_'
注:查询包含“见”这个字的记录,且它之前是一个内容,后面内容长度不限制
SELECT *
FROM user
WHERE
NAME LIKE '_见%'
三. [ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
注:link '[郝刘王]帅' 查询“郝帅、刘帅、王帅”
SELECT *
FROM user
WHERE
NAME LIKE '[郝刘王]帅'
注: [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
SELECT *
FROM user
WHERE NAME
LIKE '郝[0-9]气' --中间为1个数字
-----------------------------------------------------------------------------
SELECT *
FROM user
WHERE NAME
LIKE '郝[a-z]气' --中间为1个字母,字母大小写可以通过约束设定,不区分大小写
-----------------------------------------------------------------------------
SELECT *
FROM user
WHERE NAME
LIKE '郝[0-9a-z]气' --中间为1个字母和和1个数字,字母大小写可以通过约束设定,不区分大小写
-----------------------------------------------------------------------------
SELECT *
FROM user
WHERE NAME
LIKE '郝[!0-9]气' --中间不为数字
------------------------------------------------------------------------------
四. ^:表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
注:link '[^郝刘王]帅' 查询不是“郝帅、刘帅、王帅”的记录
SELECT *
FROM user
WHERE
NAME LIKE '[^郝刘王]帅'
字符以外的任一个字符。
注:link '[^郝刘王]帅' 查询不是“郝帅、刘帅、王帅”的记录
SELECT *
FROM user
WHERE
NAME LIKE '[^郝刘王]帅'
模糊查询的后续操作在下面这篇文章
https://haosy.blog.csdn.net/article/details/105176968