MySQL:选择所有以给定数字开头的字段,下一个字符是字母?

jQu*_*ast 4 php mysql sql

我有一个随机varchar数字/字母的表格如下:

1a
101a
101b
101c
11b
14a
14b
14c
14z
108a
108b
Run Code Online (Sandbox Code Playgroud)

我想SELECT * FROM TABLE WHERE VAR = [SPECIFIC NUMBER]/FOLLOWING ANY LETTER.

例如,我使用这种错误的方法,它选择从1开始的所有内容:

SELECT * 
FROM  `table` 
WHERE var LIKE  '1%'
Run Code Online (Sandbox Code Playgroud)

这给了我以上所有的例子,因为所有这些都以1开头.我希望这只选择: 1a

Kon*_*rak 10

使用 REGEXP

SELECT * 
FROM  `table` 
WHERE var REGEXP '^1[[:alnum:]]'
Run Code Online (Sandbox Code Playgroud)

正则表达式解释:

  • ^ 用于开始字符串
  • 1 为您的具体号码
  • [[:alnum:]]对于一个alfanumeric字符 - 如果你严格要字母,请alpha在这里使用.例如

SELECT * 
FROM  `table` 
WHERE var REGEXP '^1[[:alpha:]]'
Run Code Online (Sandbox Code Playgroud)

Demo on SQL Fiddle

  • 这仍然会返回所有内容,我认为表达式应该是''^ 1 [az]'或''^ 1 [:alnum:]'`一个OP只想返回`1a`.[关于SQL小提琴的例子](http://sqlfiddle.com/#!2/56bcb/9) (3认同)