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

时间:2014-01-10 13:12:10

标签: php mysql sql

我有一个随机varchar数字/字母表:

1a
101a
101b
101c
11b
14a
14b
14c
14z
108a
108b

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

例如我正在使用这个错误的方法,它选择以1开头的所有内容:

SELECT * 
FROM  `table` 
WHERE var LIKE  '1%'

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

1 个答案:

答案 0 :(得分:10)

使用REGEXP

SELECT * 
FROM  `table` 
WHERE var REGEXP '^1[[:alnum:]]'

Regexp解释:

  • ^用于字符串的开头
  • 1了解您的具体电话号码
  • [[:alnum:]]代表alfanumeric角色 - 如果您严格要字母,请在此处使用alpha。 e.g。

SELECT * 
FROM  `table` 
WHERE var REGEXP '^1[[:alpha:]]'

SELECT * FROM `table` WHERE var REGEXP '^1[[:alpha:]]'

Demo on SQL Fiddle