mysql中regexp详解
时间: 2023-12-20 13:42:43 浏览: 83
在MySQL中,REGEXP是一种正则表达式匹配函数,用于在字符串中查找模式。它可以用于WHERE子句、SELECT语句、JOIN操作等多个场景。
下面是一些常用的REGEXP操作符和元字符:
1. `REGEXP`或`=~`:用于匹配字符串是否与指定的正则表达式模式匹配。
2. `^`:表示匹配字符串的开头。
3. `$`:表示匹配字符串的结尾。
4. `.`:表示匹配任意单个字符。
5. `*`:表示匹配前一个字符的零个或多个实例。
6. `+`:表示匹配前一个字符的一个或多个实例。
7. `?`:表示匹配前一个字符的零个或一个实例。
8. `[]`:用于指定一个字符集,匹配其中的任意一个字符。
9. `[a-z]`:表示匹配从a到z之间的任意一个小写字母。
10. `[0-9]`:表示匹配任意一个数字。
11. `[^]`:表示匹配不在字符集中的任意一个字符。
12. `()`:用于标记子表达式。
下面是一些使用REGEXP的示例:
1. 查找以"abc"开头的字符串:
```sql
SELECT * FROM table_name WHERE column_name REGEXP '^abc';
```
2. 查找以"xyz"结尾的字符串:
```sql
SELECT * FROM table_name WHERE column_name REGEXP 'xyz$';
```
3. 查找包含"123"的字符串:
```sql
SELECT * FROM table_name WHERE column_name REGEXP '123';
```
4. 查找以字母开头,后跟数字的字符串:
```sql
SELECT * FROM table_name WHERE column_name REGEXP '^[a-zA-Z][0-9]';
```
5. 查找不包含特定字符的字符串:
```sql
SELECT * FROM table_name WHERE column_name REGEXP '[^abc]';
```
这只是REGEXP的一些基本用法,正则表达式具有很大的灵活性,可以根据具体需求进行更复杂的模式匹配。
阅读全文