简单的mysql正则表达式查询

时间:2013-07-11 20:14:58

标签: mysql sql regex

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

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

谢谢,

5 个答案:

答案 0 :(得分: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

答案 1 :(得分: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]"

答案 2 :(得分:1)

LIKE识别两个通配符:

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

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

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

编辑:

如果您想允许某个范围内的字符(即数字),那么LIKE字段中的REGEXP范围内的SELECT * FROM `table` WHERE `var` REGEXP '^r[0-9]' 范围超出范围:

^

请注意,正则表达式略有不同。它们可以匹配字符串中的任何位置,因此LIKE告诉它只查看开头,并且没有必要像使用{{1}}那样告诉它“后跟任何东西”。

答案 3 :(得分:0)

请注意语法:

SELECT * FROM table WHERE var LIKE 'r%'

答案 4 :(得分:0)

您需要使用%而不是*

SELECT * 
FROM table 
WHERE var LIKE "r%"