带有特定格式的字段的sql查询

时间:2018-09-21 08:44:48

标签: sql regex mysqli

我有一个带有字段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}[.]*"

但是这行不通,因为我还有以两个字母开头的

感谢您的回答和时间

1 个答案:

答案 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  

这就是为什么您出现误报