Heim  >  Fragen und Antworten  >  Hauptteil

Finden Sie passende Ganzzahlen in JSON.

<p>Ich möchte 123 in einem JSON-String in MySQL finden. </p><p>Das ist meine Anfrage: </p><p><br /></p> <pre class="brush:php;toolbar:false;">SELECT * AUS „Berichte“. WHERE JSON_CONTAINS(json_data, 123, "$.respCode");</pre> <p>Wenn ich diesen Code ausführe, erhalte ich die folgende Fehlermeldung: </p> <blockquote> <pre class="brush:php;toolbar:false;">Fehlercode: 3146. Ungültiger Datentyp für JSON-Daten in Argument 1 bis Funktion json_contains; ein JSON-String oder JSON-Typ ist erforderlich. </blockquote> <p>Mein JSON sieht in der Spalte „json_data“ so aus: </p> <pre class="lang-json Prettyprint-override"><code>{ „bla“:“, „bla2“: „“, „bla3“: „“, „bla4“: „“, „respCode ::123, „bla5:“ } </code></pre> <p>Das habe ich auch versucht</p> <p><code>WHERE JSON_UNQUOTE(JSON_EXTRACT('json_data', "$.respCode")) = '123'</code></p>
P粉252116587P粉252116587476 Tage vor470

Antworte allen(1)Ich werde antworten

  • P粉617597173

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

    这是MySQL JSON_CONTAINS()函数的语法:

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

    你可以试试

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

    DB Fiddle Demo

    Antwort
    0
  • StornierenAntwort