sql >> Database teknologi >  >> RDS >> Mysql

MYSQL REGEXP søgning i JSON-streng

Nå, det er ret nemt at fejlfinde:

SELECT '"listeListeOuiNon":"2"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'

returnerer 0

SELECT '"listeListeOuiNon":"1"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'

returnerer 1

SELECT '"listeListeOuiNon":"1,2"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'

returnerer 1

Så noget er ikke rigtigt ved din side... fordi det bare ikke kunne returnere rækker, hvor body er lig med "listeListeOuiNon":"2" . Men det er muligt, at organet har flere af disse udsagn, noget som:

body => '"listeListeOuiNon":"1,2", "listeListeOuiNon":"2"'

Så du skal ændre dit regexp:

'^"listeListeOuiNon":".*1.*"$'

Nå, så skal du ændre din forespørgsel:

SELECT DISTINCT tag, body FROM pages WHERE (body REGEXP BINARY '"listeListeOuiNon":".*1.*"') AND NOT (body REGEXP BINARY '"listeListeOuiNon":"2"')



  1. Emoji indsættes ikke i databasenoden js mysql

  2. PHP Array som input til Stored Procedure

  3. Sådan får du den aktuelle dato i SQLite

  4. Hvordan indsætter man en post og returnerer det nyoprettede ID ved hjælp af en enkelt SqlCommand?