You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将带范围限定的正则表达式转换为SQL查询语句?

解决SQL中匹配正则范围{2-4}的方案

你的需求是匹配符合ABCD_[A-Z]{2,4}_[0-9]{4}格式的字符串,现有LIKE语句无法精确限定字母长度范围,可按以下两种方式解决:

一、通用兼容方案(适配所有SQL数据库)

直接枚举字母长度为2、3、4的三种情况,用OR连接实现精准匹配:

WHERE 
    [columnName] LIKE 'ABCD_[A-Z][A-Z]_[0-9][0-9][0-9][0-9]'
    OR [columnName] LIKE 'ABCD_[A-Z][A-Z][A-Z]_[0-9][0-9][0-9][0-9]'
    OR [columnName] LIKE 'ABCD_[A-Z][A-Z][A-Z][A-Z]_[0-9][0-9][0-9][0-9]'

这种写法简单直接,不依赖数据库的正则扩展功能,所有SQL环境都能运行。

二、利用数据库原生正则支持(更简洁高效)

如果你的数据库支持正则表达式匹配,直接用原生语法更简洁:

  • MySQL/MariaDB:使用REGEXP或RLIKE

    WHERE [columnName] REGEXP '^ABCD_[A-Z]{2,4}_[0-9]{4}$'
    

    注:^和$用于确保整个字符串完全匹配,避免部分符合规则的记录被误选。

  • SQL Server 2016及以上版本:使用REGEXP_LIKE函数

    WHERE REGEXP_LIKE([columnName], '^ABCD_[A-Z]{2,4}_[0-9]{4}$')
    
  • PostgreSQL:使用~操作符

    WHERE [columnName] ~ '^ABCD_[A-Z]{2,4}_[0-9]{4}$'
    

内容的提问来源于stack exchange,提问作者Nisar Ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:00:45