Heim  >  Artikel  >  Datenbank  >  Hat MySQL einen JSON-Typ?

Hat MySQL einen JSON-Typ?

青灯夜游
青灯夜游Original
2020-10-02 12:03:033572Durchsuche

MySQL hat einen JSON-Typ. MySQL hat seit Version 5.7 den JSON-Datentyp eingeführt, der JSON-Daten direkt verarbeiten kann. Unter MySQL Version 5.7 ist das Speichern von Daten im JSON-Format in der Tabelle jedoch auf Datentypen wie Varchar oder Text angewiesen.

Hat MySQL einen JSON-Typ?

Der JSON-Typ in MySQL

json ist ein sehr einfach zu verwendender Datentyp, um JSON zu speichern, aber es gibt ein Problem darin, dass er JSON nicht mehr bedienen kann 5.7 können Sie JSON-Daten direkt bedienen.

  1. Zum Erstellen von JSON gibt es nichts zu sagen. Es ist nicht erforderlich, die Länge anzugeben, und der Standardwert ist 0. Sie können das Einfügen von Zeichenfolgen für Aktualisierungen und Einfügungen verwenden.
  2. Abfrage Geben Sie die Daten zur Verarbeitung an den Hintergrund weiter. Übergeben Sie sie also zur Verarbeitung an die Datenbank:
  3. Eine bestimmte Tabelle in der Datenbank verfügt über ein content_json-Feld, das solche Daten enthält!
  4. {
      "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": {}
    }
  5. Die Struktur ist so, wir wollen die untere UUID abfragen! Überprüfen Sie die Bedingungen. Die Rechnung im Inneren ist immer noch ein Array. Wie kann man also die untere UUID überprüfen?

Persönlich verwende ich lieber eine Methode wie Lambda. Schließlich ist dies eine stilvolle und schöne Operation:

SELECT content_json->'$.bill[*].bill[*].uuid' 
from  b 
WHERE JSON_CONTAINS(content_json->'$.bill[*].bill[*].uuid' ,'["cfd872541b3b4507a50c2b2eda6bef28"]')

AbfrageergebnisseHat MySQL einen JSON-Typ?
Code-Analyse:

content_json->'$.bill[Hat MySQL einen JSON-Typ?]. bill [

].uuid';


stellt das Feld content_json dar „$“ ist ein erforderlicher Symbolpunkt zur Darstellung des Objekts * steht für alle

Dann besteht die Bedeutung des Codes darin, alle Rechnungen abzufragen (das zweite) im Feld „content_json“ wird uuid als Array zurückgegeben;
Die Bedingung, gefolgt von where, bedeutet, dass ein bestimmter Wert vorhanden ist.

JSON_CONTAINS (Feld, Parameter);


Das Feld muss der angegebene sein Zu prüfender Wert Zum Beispiel: content_json->'$.bill[
].bill[].uuid' ; Der Parameter muss eine Zeichenfolge vom Typ JSON sein, was nicht akzeptabel ist.
Empfohlenes Tutorial: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonHat MySQL einen JSON-Typ?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn