📜  mysql 正则表达式选择 - SQL (1)

📅  最后修改于: 2023-12-03 15:17:48.235000             🧑  作者: Mango

MySQL正则表达式选择 - SQL

正则表达式是一种很强大的工具,可以用来匹配和操作字符串。在MySQL中,我们也可以使用正则表达式来选择数据。

正则表达式基础知识

正则表达式是一种由字符和特殊字符组成的字符串,用来描述或匹配一系列符合某个规则的字符串。在MySQL中,最常用的正则表达式特殊字符如下:

| 字符 | 描述 | |------|------| | . | 匹配任何字符 | | * | 匹配前一个字符0次或多次 | | + | 匹配前一个字符1次或多次 | | ? | 匹配前一个字符0次或1次 | | ^ | 匹配字符串的开头 | | $ | 匹配字符串的结尾 | | [] | 匹配括号内的任意一个字符 | | [^] | 匹配不在括号内的任意一个字符 | | () | 分组,用来限定一组字符的范围 |

MySQL正则表达式函数

MySQL中有两个用来匹配正则表达式的函数:REGEXPRLIKE。它们的用法是完全一样的,只是名字不同。这两个函数的参数分别是要匹配的字符串和正则表达式模式。

SELECT * FROM table
  WHERE column REGEXP 'pattern'
SELECT * FROM table
  WHERE column RLIKE 'pattern'
MySQL正则表达式示例

以下是一些使用正则表达式选择数据的示例:

  1. 匹配以'a'开头的字符串
SELECT * FROM table
  WHERE column REGEXP '^a'
  1. 匹配以'a'结尾的字符串
SELECT * FROM table
  WHERE column REGEXP 'a$'
  1. 匹配包含数字串的字符串
SELECT * FROM table
  WHERE column REGEXP '[0-9]+'
  1. 匹配包含'ab'或'bc'或'cd'的字符串
SELECT * FROM table
  WHERE column REGEXP 'ab|bc|cd'
  1. 匹配长度为3的字符串
SELECT * FROM table
  WHERE column REGEXP '^.{3}$'
  1. 匹配包含重复字符的字符串
SELECT * FROM table
  WHERE column REGEXP '(.).*\1'
  1. 匹配包含单词'cat'的字符串
SELECT * FROM table
  WHERE column REGEXP '[[:<:]]cat[[:>:]]'

以上是一些常用的正则表达式示例,希望对你有所帮助。