我是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)
知道吗?
也许是因为它很贪婪,但我不确定。。。
提前谢谢!

最佳答案

我会尝试用.*替换这两个[^"]*。。。不过,只有当您的listeListeOuiNon不能包含litteral"s时,这才足够,否则您还必须处理转义序列。基本上,使用.可以匹配任何在“1之后有"listListOuiNon":"”的JSON字符串,即使它在另一个字段中,是的,这是因为它是贪婪的。

关于mysql - MYSQL REGEXP在JSON字符串中搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7528881/

10-10 14:11