Rumah  >  Soal Jawab  >  teks badan

Cari integer yang sepadan dalam JSON.

<p>Saya mahu mencari 123 dalam rentetan JSON dalam MySQL. </p><p>Ini adalah pertanyaan saya:</p><p><br /></p> <pre class="brush:php;toolbar:false;">SELECT * DARIPADA `laporan` WHERE JSON_CONTAINS(json_data, 123, "$.respCode");</pre> <p>Apabila saya menjalankan kod ini, saya mendapat ralat berikut: </p> <blockquote> <pre class="brush:php;toolbar:false;">Kod Ralat: 3146. Jenis data tidak sah untuk data JSON dalam argumen 1 hingga fungsi json_contains; rentetan JSON atau jenis JSON diperlukan 0.020 saat</pre> </blockquote> <p>Json saya kelihatan seperti ini dalam lajur json_data: </p> <pre class="lang-json prettyprint-override"><code>{ "bla":"", "bla2":"", "bla3":"", "bla4":"", "respCode ":"123", "bla5":"" } </code></pre> <p>Saya juga mencuba ini</p> <p><kod>WHERE JSON_UNQUOTE(JSON_EXTRACT('json_data', "$.respCode")) = '123'</code></p>
P粉252116587P粉252116587476 hari yang lalu468

membalas semua(1)saya akan balas

  • P粉617597173

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

    Ini ialah sintaks fungsi MySQL JSON_CONTAINS():

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

    Boleh cuba

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

    Demo Fiddle DB

    balas
    0
  • Batalbalas