表示例 user
学习:
^ | 匹配以^后面字符开头的所有数据,示例:^str,则匹配str开头的所以数据 |
$ | 匹配以$前面面字符结尾的所有数据,示例:str$,则匹配str结尾的所以数据 |
. | 匹配任何单个字符,示例:str.str,则匹配str与str中间有一位的数据>str1str |
* | 匹配0个或者多个在它前面的字符,示例:str*str,则匹配str与str中间有0或者多位的数据>strstr,strceshistr,...... |
+ | 匹配1个或者多个在它前面的字符,示例:str+str,则匹配str与str中间有1或者多位的数据>str1str,strceshistr,...... |
字符串 | 匹配包括指定字符的文本,示例:str,则匹配str,struu,ceshistr,...... |
[字符集] | 匹配字符集中的任意一个字符 示例: [0-9]:匹配0-9之间任意一个数字 [A-Z]:匹配A-Z之间任意一个字母 [a-z]:匹配a-z之间任意一个字母 [xz]:匹配x或者z之间任意一个字母 |
[^] | 匹配不在括号中的任何字符,示例:[^abc]:匹配任何不包括a,b,c的字符串:desk |
字符串{n,} | 匹配前面的字符串至少出现n次 示例: str{2},匹配str至少出现2次及以上的,strstr898 |
字符串{n,m} | 匹配前面的字符串至少出现n次,最多出现m次 示例: str{2,3},匹配str出现2-3次的,strstr,strstrstr |
简单实践:
查询user表中name字段包括小婷的所有数据,类似 name "%小婷%" | select * from user where name regexp '小婷'; | |
查询user表中name字段包括且以小婷开头的所有数据,类似 name "小婷%" | select * from user where name regexp '^小婷'; | |
查询user表中name字段包括且以小婷结尾的所有数据,类似 name "%小婷" | select * from user where name regexp '小婷$'; | |
查询user表中name字段包括小婷或者张三的所有数据 | select * from user where name regexp '小婷|张三'; | |
查询user表中name字段中 以小婷开头和结尾的 以及 以张三开头的所有数据 | select * from user where name regexp '^小婷$|^张三'; | |
查询user表中name字段中不仅仅包括小、2、婷的所以记录 示例:[^0-9]匹配除了0-9以外的字符 未显示数据解释:小婷:字符都在这“小、2、婷“三个中,故不显示。 2小婷:字符都在这“小、2、婷“三个中,故不显示。 | select * from user where name regexp '[^小2婷]'; | |
查询不包括小婷的所以记录 | select * from user where name not regexp '小婷'; |