MySql REGEXP搜索具有左右方括号

时间:2015-05-17 19:03:54

标签: mysql sql regex

我试图从数据库中获取包含方括号的任何内容。我的尝试如下:

select count(*)
from table t
where t.string regexp '@\\[@\\]@'
group by t.TID

我想要的字符串示例:

foo[foo]foo
foo[foo]
[foo]foo
[foo]
[]

2 个答案:

答案 0 :(得分:2)

这可能是最快的:

LIKE '%[%]%' -- finds all of your test items plus some more.

如果你需要括号“平衡”,这是一个更难的问题,特别是如果它们可以“嵌套”。

REGEXPLIKE更具表现力,但速度慢于REGEXP。显然不需要REGEXP

LIKE中需要反斜杠,而不是{{1}}中的反斜杠。

答案 1 :(得分:1)

使用LIKE

where t.string LIKE '%[%' OR t.string LIKE '%]%'

在这种情况下,您只需要一个基于REGEXP的搜索。