Trouvez des entiers correspondants dans JSON.
P粉252116587
2023-07-25 08:47:02
<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>
Voici la syntaxe de la fonction MySQL JSON_CONTAINS() :
Vous pouvez l'essayer
Démo DB Fiddle