SQL中常见的模糊查询like与正则表达式

1.普通的模糊查询

 SELECT 字段 FROM 表名 WHERE 字段 LIKE 条件

  关于条件又可以分为四种匹配模式:

  1)%表示零个或任意多个字符。

  SELECT * FROM student WHERE stu_name LIKE ‘%诗%’

  这样就可以筛选出刘诗雯、王诗淼等类的人。

  2)_: 表示任意单个字符、匹配单个任意字符。

  SELECT * FROM student WHERE stu_name LIKE '_诗_'

  这样可以匹配到刘诗雯、刘刘诗雯雯、刘诗雯雯雯雯等等中间出现诗的名字。

  3)[^ ] :表示不在括号所列之内的单个字符。

  SELECT * FROM student WHERE stu_name LIKE '[^赵钱孙]诗雯'

  这样可以排除赵诗雯、钱诗雯、孙诗雯。

  4)[ ]:表示括号内所列字符中的一个。

  SELECT * FROM student WHERE stu_name LIKE '[赵钱孙]诗雯'

  这样可以匹配到赵诗雯、钱诗雯、孙诗雯。(类似正则表达式)

2.正则表达式,使用REGEXP和NOT REGEXP操作符

  “.”匹配任何单个的字符:一个字符类“[...]”匹配在方括号内的任何字符。

  “ * ”匹配零个或多个在它前面的东西: 例如[a-z] *表示随机匹配任何数量a-z之间的字母

  使用“^”和“$”匹配名字的开始和结尾

  SELECT * FROM student WHERE stu_name REGEXP "^.....$";
  名字包含五个字符的学生

  “{n}”“重复n次”

  SELECT * FROM student WHERE stu_name REGEXP "^.{3}$";
  匹配三个字的名字

  

原文地址:https://www.cnblogs.com/yishengPan/p/13656736.html