Mysql には json 型があります。 MySQL はバージョン 5.7 以降、JSON データを直接操作できる JSON データ型を導入しましたが、MySQL バージョン 5.7 より前では、JSON 形式のデータをテーブルに保存するには、varchar や text などのデータ型に依存する必要があります。
#MySQL の JSON 型
json は、mysql5.7 より前の非常に使いやすいデータ型です。 json を保存するために string を使用しますが、json を操作できないという問題がありましたが、5.7 以降では json データを直接操作できるようになりました。{ "bill": [ { "bill": [ { "id": "C81AEAD03F90000142E81B405F6FADC0", "uuid": "cfd872541b3b4507a50c2b2eda6bef28", "billid": "kjdzyljgmzsfzypj", "pageno": [], "billver": "V1", "billname": "新增测试", "fjNumber": "", "trueName": "", "allPageno": [ { "top": 13, "left": 7 } ], "billValue": {}, "isOtherZL": "", "billNumber": "", "fjTMNumber": "" }, { "id": "C81AED69D6400001A07818551D9EBEC0", "uuid": "05d87c8052cd44209c684407d200b7ec", "billid": "opztsfpsgd", "pageno": [], "billver": "V1", "billname": "发票申购", "fjNumber": "", "trueName": "", "allPageno": [ { "top": 13, "left": 7 } ], "isOtherZL": "", "billNumber": "", "fjTMNumber": "" } ], "index": "", "dependBjBill": { "formula": "", "keyView": "" }, "codeCondition": { "formula": "", "keyView": "" }, "billRuleCondition": { "formula": "", "keyView": "" } }, { "bill": [ { "id": "C81AED84903000019B29EAB0196014CE", "uuid": "0d93fe614d09489cbad8fa5a3d160289", "billid": "kjdzcwgwht", "pageno": [], "billver": "V1", "billname": "财务顾", "fjNumber": "", "trueName": "", "allPageno": [ { "top": 39, "left": 7 } ], "isOtherZL": "", "billNumber": "", "fjTMNumber": "" } ], "index": "", "dependBjBill": { "formula": "", "keyView": "" }, "codeCondition": { "formula": "", "keyView": "" }, "billRuleCondition": { "formula": "", "keyView": "" } } ], "questions": [], "relyonCondition": {} }
請求書の下の請求書は配列です、中の請求書も配列のままです、では一番下のuuidを確認するにはどうすればよいでしょうか?
; 個人的には、ラムダに似たメソッドを使用することを好みます。結局のところ、これはスタイリッシュで美しい操作です:
SELECT content_json->'$.bill[*].bill[*].uuid' from b WHERE JSON_CONTAINS(content_json->'$.bill[*].bill[*].uuid' ,'["cfd872541b3b4507a50c2b2eda6bef28"]')
content_json->'$.bill[
].bill[].uuid' ;
"$" は必須ですオブジェクトを表すシンボル ポイント
* すべてを表します
JSON_CONTAINS (フィールド, パラメーター);
フィールドはチェックされる指定された値である必要があります例: content_json->' $.bill[].bill[
].uuid' ; パラメーターは json タイプの文字列である必要がありますが、これは受け入れられません。
推奨チュートリアル:
以上がmysqlにはjson型がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。