like和not like
重点:利用_匹配单个字符,%匹配任意数目字符(包括0个)。
为了方便讲解,这里先列出user表的内容

1. 以x开头的name
select * from user where name like "x%";

2. 以G结尾的name
select * from user where name like "%G";

从结果中可以看出,like不区分大小写。
3. 包含t的name
select * from user where name like "%u%";

正则表达式匹配
规则在「另一篇文章中」有粗略提到,这里做个补充
同样是在where中使用,关键字为regexp。
.匹配单个字符,
[a-z]匹配从a到z之间的小写字母,
[0-9]匹配从0到9之间的数字,相当于\d,
正则表达式区分大小写,即[a]只能匹配a,不能匹配A,但mysql中似乎不区分大小写
如果希望规则匹配的是开头文本,就使用^,如果希望在结尾,就使用$,两者可以一起使用。
1. 匹配包含一个t的name
select * from user where name regexp "t";

2. 匹配以x开头的name
select * from user where name regexp "^x";

3. 匹配以o结尾的name
select * from user where name regexp "o$";

4. 匹配有两个字符的uid
select * from user where uid regexp "^..$" limit 0, 5;

这里是用通配符完成的,也可以用{n}完成
select * from user where uid regexp "^.{2}$" limit 0, 5;
最后,吐槽下csdn本身
写个MySQL语句教程也能莫名奇妙的「待审核」
不过,说不定是因为检测系统自身乱加了什么敏感词呢
本文详细介绍了在SQL中使用like和regexp进行字符串匹配的方法,包括利用_和%通配符进行模糊查询,以及使用正则表达式的高级模式匹配,如点、范围、锚定等。
212

被折叠的 条评论
为什么被折叠?



