Mysql使用REGEX选择查询

时间:2012-04-13 10:52:42

标签: mysql regex

我正在使用类似于

的regulear表达式
select * from table1 where
table1.name
REGEXP '[[:<:]]1.1[[:>:]]'

查询显示结果,其名称字段的值也为1.1.1。喜欢这个

pk  name
5   1.1
6   1.1.1

但我只需匹配1.1

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

select * from table1 where
table1.name
REGEXP '^1.1$'

确保只允许1.1(还有1X1111,因为该点匹配任何字符 - 如果要匹配文字点,请使用^1\.1$ )。

当然,现在有一个问题,为什么你想要使用正则表达式,因为它只是一个你匹配的文字字符串,而不是一个变量模式。

您的正则表达式失败,因为您使用的是字母数字字符和非字母数字字符(或字符串的开头/结尾)之间匹配的开头/结尾字锚,并且[[:>:]]匹配1 }和.,正则表达式至少部分匹配1.1.1