之前我们了解到了可以使用LIKE `%`来进行模糊查询,在今天了解正则表达式之后,我们可以更精准的使用模糊查询。
我们通过MySQL中 REGEXP 操作符来进行正则表达式查询。
1.^:匹配开始符,开头符号,
SELECT * FROM table WHERE name REGEXP '^a'; //查询table表中,name字段,所有a开头的值。
2.$:匹配结尾符,结尾符号,
SELECT * FROM table WHERE name REGEXP 'z$'; //查询table表中,name字段,所有z结尾的值。
3.[...]:匹配包含的任意一个字符,
SELECT * FROM table WHERE name REGEXP '[abc]'; //查询table表中,name字段,其中包含a或b或c的值。
//可以来查询数据库中的值是否有我们需要的字符。
4.[^...]:匹配不包含的字符,
SELECT * FROM table WHERE name REGEXP '[^abc]';
//查询table表中,name字段,不包含查询值的值;目前只知道概念,我也没有实际使用过,理解的为如果用^abc来匹配printf
//匹配到的就是p
5.p1|p2|p3:匹配满足p1或p2或p3中其中一个条件,依次判断。
SELECT * FROM table WHERE name REGEXP '^a|z$';
//查询table表中,name字段,所有a开头的值或z结尾的值。
//6.*
//7.+
//8.{n}
//9.{n,m}
6-9先不做介绍,也是具体规范正则表达式的语句。
注:在提醒一次正则表达式通过 REGEXP 操作符来进行查询。