我想选择列中第一个字符等于特定字符的所有值,第二个字符是数字 [0-9] 但不能完全理解语法。
select * from table where var LIKE ("r*")
谢谢,
select * from table where var LIKE "r%"
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like
要检查是第二个字符数字,您必须使用REGEXP
:
select * from table where var REGEXP "^r[0-9]"
http://dev.mysql.com/doc/refman/5.0/en/regexp.html#operator_regexp
简单的 :)
select * from table where var LIKE 'r%'
甚至更好
select * from table where lower(var) LIKE 'r%'
编辑 :
select * from table where var REGEXP "^r[0-9]"
LIKE
识别两个通配符:
_
匹配任何单个字符%
匹配任意数量的字符因此,在这种情况下,您需要使用以下内容:
SELECT * FROM `table` WHERE `var` LIKE 'r%'
编辑:
如果您想允许某个范围内的字符(即数字),那么这超出了LIKE
in right 字段的范围REGEXP
:
SELECT * FROM `table` WHERE `var` REGEXP '^r[0-9]'
请注意,正则表达式略有不同。它们可以匹配字符串中的任何位置,因此 .^
告诉它只看开头,并且不需要像 . 那样告诉它“后面跟着任何东西” LIKE
。
请注意语法:
SELECT * FROM table WHERE var LIKE 'r%'
您需要使用 % 而不是 *
SELECT *
FROM table
WHERE var LIKE "r%"