我正在使用类似于
的regulear表达式select * from table1 where
table1.name
REGEXP '[[:<:]]1.1[[:>:]]'
查询显示结果,其名称字段的值也为1.1.1。喜欢这个
pk name
5 1.1
6 1.1.1
但我只需匹配1.1
有什么想法吗?
答案 0 :(得分:2)
select * from table1 where
table1.name
REGEXP '^1.1$'
确保只允许1.1
(还有1X1
或111
,因为该点匹配任何字符 - 如果要匹配文字点,请使用^1\.1$
)。
当然,现在有一个问题,为什么你想要使用正则表达式,因为它只是一个你匹配的文字字符串,而不是一个变量模式。
您的正则表达式失败,因为您使用的是字母数字字符和非字母数字字符(或字符串的开头/结尾)之间匹配的开头/结尾字锚,并且[[:>:]]
匹配1
}和.
,正则表达式至少部分匹配1.1.1
。