Maison  >  Questions et réponses  >  le corps du texte

Trouvez des entiers correspondants dans JSON.

<p>Je souhaite trouver 123 dans une chaîne JSON dans MySQL. </p><p>Voici ma requête : </p><p><br /></p> <pre class="brush:php;toolbar:false;">SELECT * DE `rapports` OÙ JSON_CONTAINS(json_data, 123, "$.respCode");</pre> <p>Lorsque j'exécute ce code, j'obtiens l'erreur suivante : </p> <blockquote> <pre class="brush:php;toolbar:false;">Code d'erreur : 3146. Type de données non valide pour les données JSON dans l'argument 1 de function json_contains ; une chaîne JSON ou un type JSON est requis 0,020 sec</pre> </blockquote> <p>Mon json ressemble à ceci dans la colonne json_data : </p> <pre class="lang-json Prettyprint-override"><code>{ "bla":"", "bla2":"", "bla3":"", "bla4":"", "respCode ":"123", "bla5": "" } </code></pre> <p>J'ai aussi essayé ceci</p> <p><code>WHERE JSON_UNQUOTE(JSON_EXTRACT('json_data', "$.respCode")) = '123'</code></p>
P粉252116587P粉252116587427 Il y a quelques jours443

répondre à tous(1)je répondrai

  • P粉617597173

    P粉6175971732023-07-26 00:54:30

    Voici la syntaxe de la fonction MySQL JSON_CONTAINS() :

    JSON_CONTAINS(target_json, candidate_json)
    JSON_CONTAINS(target_json, candidate_json, path)

    Vous pouvez l'essayer

    SELECT * FROM `reports` 
    WHERE JSON_CONTAINS(json_data, '{"respCode":"123"}');

    Démo DB Fiddle

    répondre
    0
  • Annulerrépondre