我有一个带有字段REFERENCE
的sql表。
大多数参考都是这样的:A123B45*
我的意思是:
1 letter, 3 digits, 1 letter, 2 digits, anything
但是有些是 ,例如AB123C12
,它们以 2 个字母开头。
我想做一个查询以仅获取引用与第一个示例 A123B45*
相对应的行。
我已经尝试过了:
select REFERENCE from facture where REFERENCE REGEXP "[a-zA-Z][0-9]{3}[a-zA-Z][0-9]{2}[.]*"
但是这行不通,因为我还有以两个字母开头的 行。
感谢您的回答和时间
答案 0 :(得分:4)
添加^
锚,因为reference
必须从(而不是包含)正则表达式开始。 / p>
select REFERENCE
from facture
where REFERENCE REGEXP "^[a-zA-Z][0-9]{3}[a-zA-Z][0-9]{2}"
发生了什么事
AB123C12 <-- doesn't start from the pattern
^ ^
|-----| <-- but contains the pattern
这就是为什么您出现误报