我正在尝试对数据库中的所有内容进行REGEXP搜索,并且我正在尝试获取所有.cxx文件类型。我目前的搜索就像是
SELECT * FROM sourcefile
WHERE idowner IS NULL AND name REGEXP '.cxx'
目前的输出类似于
filecxx.txt
file.cxx
test.cxx
但是我想只显示.cxx文件而不仅仅是名称中包含cxx的文件,因此预期的输出将是
file.cxx
test.cxx
答案 0 :(得分:1)
您的输出正确,因为您使用的是通配符.
,这意味着任何字符,然后是cxx
,这就是为什么您还匹配ecxx
。
你必须逃避点,如下:
SELECT * FROM sourcefile
WHERE idowner IS NULL AND name REGEXP '[.]cxx'
答案 1 :(得分:1)
REGEXP
可能会返回部分匹配,但不需要完整的字符串匹配。
因此,如果您需要匹配以.cxx
结尾的字符串,则需要
AND name REGEXP '[.]cxx$'
其中[.]
匹配文字.
(如果按原样使用,则匹配任何字符),$
匹配字符串的结尾。
或者只使用LIKE
AND name LIKE '%.cxx'