数据库笔记-SQL过滤(LIKE&正则表达式)

数据库笔记-SQL过滤(LIKE&正则表达式),第1张

查询语句

结果

查询语句:

结果:

查询语句:

结果:

查询语句:

正则表达式 [32]1,[32]定义一组字符,它的意思是匹配 3 或匹配 2,也就是「31」或者 「21」都算是匹配的。

结果:

查询语句:

结果:

如果要匹配特殊字符的,需要加上前导「\」,「\-」表示查找「-」,「\.」表示查找「.」

这种就是 「转义(escaping)」 ,在正则表达式里,本身有意义的字符,比如「.」是匹配任意字符的意思。那如果要匹配它,需要转义。

注意:在 MySQL 里,是比其他的正则表达式多一个「\」的,就是「\」。

趣味提问:

如何匹配「\」?

答案:「\\」

\\([0-9] sticks?\\) 匹配的是(NUM stick)或者(NUM sticks)。s后的 ? 使得s可选。

重复元字符

* 是 0 个或多个匹配

? 是 1 个或多个匹配

{n} 是指定n个匹配

{n,} 是 不少于 n 个匹配

{n,m} 是 指定匹配的范围,m不超过 255

查询语句:

^值的是字符串的开始,$是字符串的结尾。

这就是 REGEXP 与 LIKE 类似,但是它独特的好处:可以通过「定位符」只匹配「子字符串」。

结果:

如果只是判断开头一个字符,可从ascii码表着手,比如数字0-9的ascii码是48-57,所以可以这样写:select * from table where ascii(字段)<58 and ascii(字段)>47


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9614519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存