SQL语法——使用正则查询

本文详细介绍了MySQL中的REGEXP运算符及其用法,包括WHERE子句的语法、示例演示、大小写敏感比较以及RLIKE的使用。通过查找以A、B或C开头的产品名,展示了如何在SQL查询中运用正则表达式进行高效匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL REGEXP运算符

MySQL适应Henry Spencer实现的正则表达式。MySQL允许您使用REGEXP运算符在SQL语句中匹配模式。

以下说明REGEXP了WHERE 子句中运算符 的语法:

SELECT 
    column_list
FROM
    table_name
WHERE
    string_column REGEXP pattern; 

此语句执行 string_column对pattern的模式匹配。

  1. 如果string_column匹配的值为WHERE子句中pattern的表达式返回true,否则返回false。

  2. 如果string_column或者pattern是NULL,结果是NULL。

  3. 除了REGEXP运算符之外,还可以使用RLIKE运算符,它是运算符的同义词REGEXP。

REGEXP的否定形式是NOT REGEXP。

MySQL REGEXP示例

假设您要查找姓氏以字符A,B或C开头的所有产品。您可以在以下SELECT语句中使用正则表达式:

SELECT 
    productname
FROM
    products
WHERE
    productname REGEXP '^(A|B|C)'
ORDER BY productname; 

在这里插入图片描述

如果想REGEXP在大小写敏感的方式比较字符串,则可以使用二进制运算符来投一个字符串转换为二进制字符串。

因为MySQL逐字节而不是逐字符地比较二进制字符串。这允许字符串比较区分大小写。

例如,以下语句仅匹配"C"产品名称开头的大写。

SELECT 
    productname
FROM
    products
WHERE
    productname REGEXP BINARY '^C'; 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值