单数字mysql的通配符

时间:2013-06-04 20:26:54

标签: mysql sql

我想使用LIKE运算符来匹配列中的可能值。

如果值以“CU”开头,后跟一个数字(例如“3”),后跟其他任何内容,我想将其返回。对于使用下划线的任何单个字符,似乎只有通配符,但是我需要确保它是一个数字而不是a-z。 我试过这些无济于事:

select name from table1 where name like 'CU[0-9]%'
select name from table1 where name like 'CU#%'

最好这可能是区分大小写的,即如果是cu或Cu或cU那么这将不匹配。

4 个答案:

答案 0 :(得分:10)

您需要使用正则表达式:

select name
from table1
where name regexp binary '^CU[0-9]'

regexp的文档是here

编辑:binary是确保区分大小写的匹配所必需的

答案 1 :(得分:3)

like operator在MySQL中只有%_通配符,但您可以使用rlike operator的正则表达式:

select name from table1 where name rlike '^CU[0-9]'

答案 2 :(得分:1)

您是否尝试过:

select name from table where name between 'CU0' and 'CU9'

答案 3 :(得分:1)

您可以使用REGEXP运算符,请参阅http://dev.mysql.com/doc/refman/5.1/en/regexp.html#operator_regexp

所以你的查询将是:

select name from table where name regexp 'CU[0-9].*';