Nou, het is vrij eenvoudig te debuggen:
SELECT '"listeListeOuiNon":"2"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'
geeft 0
. terug
SELECT '"listeListeOuiNon":"1"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'
geeft 1
. terug
SELECT '"listeListeOuiNon":"1,2"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'
geeft 1
. terug
Dus er klopt iets niet aan jouw zijde... omdat het gewoon geen rijen kon retourneren waar body gelijk is aan "listeListeOuiNon":"2"
. Maar het is mogelijk dat die instantie meerdere van deze uitspraken heeft, zoiets als:
body => '"listeListeOuiNon":"1,2", "listeListeOuiNon":"2"'
Dus je moet je regexp aanpassen:
'^"listeListeOuiNon":".*1.*"$'
Welnu, dan moet u uw zoekopdracht aanpassen:
SELECT DISTINCT tag, body FROM pages
WHERE (body REGEXP BINARY '"listeListeOuiNon":".*1.*"') AND NOT (body REGEXP BINARY '"listeListeOuiNon":"2"')