LIKE运算符: 执行通配查询,查询条件可包含文字字符或数字
‘%‘代表的是任意个字符,它的效果像是正则表达式里的’*’
‘_‘字符,这表示一个任意字符。效果类似正则表达式里面的’.’
REGEXP运算符: 是mysql的正则匹配操作符.
一、总结
LIKE
通配符 | 含义 |
---|---|
% | 表示任意个数的任意字符,匹配任意类型和长度的字符 |
- | 表示一个任意字符,匹配一个任意字符,常用来限制表达式的字符长度语句 |
REGEXP(正则)
通配符 | 含义 |
---|---|
[ ] | 表示括号内所列字符中的一个字符 |
[^ ] | 表示不在括号所列之内的一个字符 |
^ | 匹配字符串开始位置 |
$ | 匹配字符串结束位置 |
. | 匹配除\n之外的任意单个字符 |
* | 匹配前面的子表达式零次或多次 |
注:A|B|C表示匹配A或B或C
二、语法
SELECT 字段(列) FROM 表 WHERE 查询字段(列) LIKE/REGEXP 条件
三、LIKE举例
3.1"%"的用法
3.1.1举例表
%:表示任意个数的任意字符,匹配任意类型和长度的字符
要求:将商品名中带有“牙膏”的都找出来
3.1.2代码
SELECT * FROM business WHERE goodsName LIKE '%牙膏%'
3.1.3运行结果
3.2“-”的用法
3.2.1举例表
_ :表示一个任意字符,匹配一个任意字符,常用来限制表达式的字符长度语句
要求:1.找出以张开头的两个字的用户名 2.找出第二个字为浩的用户名
注:一个“_”代表一个字符
3.2.2代码
SELECT * FROM nameone WHERE username LIKE '张_'
SELECT * FROM nameone WHERE username LIKE '_浩_'
3.2.3运行结果
四、REGEXP举例
4.1“[ ]”的用法
4.1.1举例表
[]:表示括号内所列字符中的一个字符
要求:将为(1-3)狗子用户名都找出来
4.1.2代码
SELECT * FROM nameone WHERE username REGEXP '[1-3]狗子';
4.1.3运行结果
4.2“[^]”的用法
4.2.1举例表
[^ ] :表示不在括号所列之内的一个字符
要求:将除了序号为(1-3)且后缀为狗子的用户名都找出来
4.2.2代码
SELECT * FROM nameone WHERE username REGEXP '[^1-3]狗子';
4.2.3运行结果
4.3“^”的用法
4.3.1举例表
^:匹配字符串开始位置
要求:将以“张”开头的找出来
4.3.2代码
SELECT * FROM nameone WHERE username REGEXP '^张';
4.3.3运行结果
4.4“$”的用法
4.4.1举例表
$:匹配字符串结束位置
要求:找出以七结尾的用户名
4.4.2代码
SELECT * FROM nameone WHERE username REGEXP '七$';
4.4.3运行结果
4.5“.”的用法
4.5.1举例表
. :匹配除\n之外的任意单个字符
要求:将第三个字为“然”的用户名找出来
4.5.2代码
SELECT * FROM nameone WHERE username REGEXP '..然';
4.5.3运行结果
4.6“A|B|C”的用法
4.6.1举例表
A|B|C表示匹配A或B或C
要求:将匹配张、狗、二的用户名都找出来
4.6.2代码
SELECT * FROM nameone WHERE username REGEXP '张|狗|二';
4.6.3运行结果
4.7“*”的用法
4.7.1举例表
*:匹配前面的子表达式零次或多次,例如 ,张 山 * 能匹配张以及张山山
要求:将张山、张田、张山山统统找出来
4.7.2代码
SELECT * FROM nameone WHERE username REGEXP '张山*';
4.7.3运行结果
希望可以帮到你!若有不足,欢迎指出.
转载:https://blog.csdn.net/hanhanwanghaha/article/details/106170559
查看评论