【发布时间】:2011-09-23 12:24:14
【问题描述】:
我是 regexp 的初学者,我尝试搜索 json 格式的文本,但我无法正常工作:
SELECT DISTINCT tag, body FROM pages
WHERE (body REGEXP BINARY '"listeListeOuiNon":".*1.*"')
它显示我作为结果文本与
"listeListeOuiNon":"1" 和
"listeListeOuiNon":"1,2" 和
"listeListeOuiNon":"0,1"as expected,
还有"listeListeOuiNon":"2" (not expected)
有什么想法吗? 也许是因为它很贪心,但我不确定......
提前致谢!
【问题讨论】:
-
请注意,MySQL REGEX 是一个非常昂贵的操作。如果可以摆动它,通常可以更快地将其分解为多个 LIKE 语句。另外,这是一个常见的查询还是匹配的文本会经常变化?
-
是的,我知道喜欢更快,但实际上匹配文本正在改变并尝试使用 LIKE '"listeListeOuiNon":"%1%"' 并没有更好..
-
你能给我们一个匹配“listeListeOuiNon”:“2”的示例行吗?
-
是的,例如:SELECT '"listeListeOuiNon":"2", "listeToto":"1"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'