我想使用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那么这将不匹配。
答案 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].*';