Bene, è abbastanza facile eseguire il debug:
SELECT '"listeListeOuiNon":"2"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'
restituisce 0
SELECT '"listeListeOuiNon":"1"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'
restituisce 1
SELECT '"listeListeOuiNon":"1,2"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'
restituisce 1
Quindi qualcosa non è al tuo fianco... perché semplicemente non potrebbe restituire righe in cui body è uguale a "listeListeOuiNon":"2"
. Ma è possibile che quel corpo abbia molte di queste affermazioni, qualcosa come:
body => '"listeListeOuiNon":"1,2", "listeListeOuiNon":"2"'
Quindi devi modificare la tua espressione regolare:
'^"listeListeOuiNon":".*1.*"$'
Bene, allora devi modificare la tua query:
SELECT DISTINCT tag, body FROM pages
WHERE (body REGEXP BINARY '"listeListeOuiNon":".*1.*"') AND NOT (body REGEXP BINARY '"listeListeOuiNon":"2"')