首頁  >  問答  >  主體

在JSON中尋找匹配的整數。

<p>我想在MySQL中的JSON字串中找到123。 </p><p>這是我的查詢語句:</p><p><br /></p> <pre class="brush:php;toolbar:false;">SELECT * FROM `reports` WHERE JSON_CONTAINS(json_data, 123, "$.respCode");</pre> <p>當我運行這段程式碼時,我得到了以下錯誤:</p> <blockquote> <pre class="brush:php;toolbar:false;">Error Code: 3146. Invalid data type for JSON data in argument 1 to function json_contains; a JSON string or JSON type is required. 0.020 sec</pre> </blockquote> <p>我的json在json_data欄位中的樣子如下:</p> <pre class="lang-json prettyprint-override"><code>{ "bla":"", "bla2":"", "bla3":"", "bla4":"", "respCode ":"123", "bla5":"" } </code></pre> <p>我也試了這個</p> <p><code>WHERE JSON_UNQUOTE(JSON_EXTRACT('json_data', "$.respCode")) = '123'</code></p>
P粉252116587P粉252116587476 天前471

全部回覆(1)我來回復

  • 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

    #

    回覆
    0
  • 取消回覆