-1

我想选择列中第一个字符等于特定字符的所有值,第二个字符是数字 [0-9] 但不能完全理解语法。

select * from table where var LIKE ("r*")

谢谢,

4

5 回答 5

2
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

于 2013-07-11T20:16:26.560 回答
1

简单的 :)

select * from table where var LIKE 'r%'

甚至更好

select * from table where lower(var) LIKE 'r%'

编辑 :

select * from table where var REGEXP "^r[0-9]"
于 2013-07-11T20:16:37.307 回答
1

LIKE识别两个通配符:

  • _匹配任何单个字符
  • %匹配任意数量的字符

因此,在这种情况下,您需要使用以下内容:

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

编辑:

如果您想允许某个范围内的字符(即数字),那么这超出了LIKEin right 字段的范围REGEXP

SELECT * FROM `table` WHERE `var` REGEXP '^r[0-9]'

请注意,正则表达式略有不同。它们可以匹配字符串中的任何位置,因此 .^告诉它只看开头,并且不需要像 . 那样告诉它“后面跟着任何东西” LIKE

于 2013-07-11T20:19:29.243 回答
0

请注意语法:

SELECT * FROM table WHERE var LIKE 'r%'
于 2013-07-11T20:17:17.743 回答
0

您需要使用 % 而不是 *

SELECT * 
FROM table 
WHERE var LIKE "r%"
于 2013-07-11T20:17:26.547 回答