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

如何编写SQL WHERE子句筛选特定格式的项目编号

筛选指定格式项目编号的WHERE子句写法

通用LIKE语法方案(兼容多数SQL数据库)

直接通过LIKE结合数字范围通配符[0-9],精确匹配两种目标格式,避免多余匹配:

WHERE 
  -- 匹配C开头+4位数字(无后续字符)
  Projectnumber LIKE 'C[0-9][0-9][0-9][0-9]'
  OR
  -- 匹配C开头+4位数字+下划线+3位数字(无后续字符)
  Projectnumber LIKE 'C[0-9][0-9][0-9][0-9]_[0-9][0-9][0-9]'

注:部分数据库(如MySQL)默认LIKE不支持[0-9]范围通配符,需改用正则方案。

正则表达式方案(更简洁,按需适配数据库)

不同数据库的正则语法略有差异,以下是主流数据库的写法:

  • MySQL/MariaDB:
    WHERE Projectnumber REGEXP '^C[0-9]{4}$|^C[0-9]{4}_[0-9]{3}$'
    
  • PostgreSQL:
    WHERE Projectnumber ~ '^C\d{4}$|^C\d{4}_\d{3}$'
    
  • SQL Server:
    WHERE PATINDEX('^C[0-9]{4}$', Projectnumber) > 0
       OR PATINDEX('^C[0-9]{4}_[0-9]{3}$', Projectnumber) > 0
    

原写法问题说明

你之前用的WHERE Projectnumber LIKE 'C____%'存在两个问题:

  1. 下划线_匹配任意单个字符,而非仅数字,会包含Cabcd这类不符合的项;
  2. 末尾的%允许后续任意字符,会匹配C1234_1234、C12345这类超出规则的项目编号。

内容的提问来源于stack exchange,提问作者Julia Himmels

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:45:20