Heim Datenbank MySQL-Tutorial 【原创】MySQL5.7JSON类型使用介绍

【原创】MySQL5.7JSON类型使用介绍

Jun 07, 2016 pm 02:56 PM
json 介绍 使用 原创 类型

JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写。对机器来说易于解析和生成,并且会减少网络带宽的传输。 JSON的格式非常简单:名称/键值。之前MySQL版本里面要实现这样的存储,要么用VARCHAR要么用T

JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写。对机器来说易于解析和生成,并且会减少网络带宽的传输。

JSON的格式非常简单:名称/键值。之前MySQL版本里面要实现这样的存储,要么用VARCHAR要么用TEXT大文本。 MySQL5.7发布后,专门设计了JSON数据类型以及关于这种类型的检索以及其他函数解析。 我们先看看MySQL老版本的JSON存取。


示例表结构:

1

2

3

4

CREATE TABLE json_test(

id INT,

person_desc TEXT

)ENGINE INNODB;

Nach dem Login kopieren

我们来插入一条记录:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

INSERT INTO json_test VALUES (1,'{

    "programmers": [{

        "firstName": "Brett",

        "lastName": "McLaughlin",

        "email": "aaaa"

    }, {

        "firstName": "Jason",

        "lastName": "Hunter",

        "email": "bbbb"

    }, {

        "firstName": "Elliotte",

        "lastName": "Harold",

        "email": "cccc"

    }],

    "authors": [{

        "firstName": "Isaac",

        "lastName": "Asimov",

        "genre": "sciencefiction"

    }, {

        "firstName": "Tad",

        "lastName": "Williams",

        "genre": "fantasy"

    }, {

        "firstName": "Frank",

        "lastName": "Peretti",

        "genre": "christianfiction"

    }],

    "musicians": [{

        "firstName": "Eric",

        "lastName": "Clapton",

        "instrument": "guitar"

    }, {

        "firstName": "Sergei",

        "lastName": "Rachmaninoff",

        "instrument": "piano"

    }]

}');

Nach dem Login kopieren


那一般我们遇到这样来存储JSON格式的话,只能把这条记录取出来交个应用程序,有应用程序来解析。



现在到了MySQL5.7,我们重新修改下表结构:

1

ALTER TABLE json_test MODIFY person_desc json;

Nach dem Login kopieren


先看看插入的这行JSON数据有哪些KEY:

1

2

3

4

5

mysql> SELECT id,json_keys(person_desc) as "keys" FROM json_test\G

*************************** 1. row ***************************

  id: 1

keys: ["authors", "musicians", "programmers"]

1 row in set (0.00 sec)

Nach dem Login kopieren


我们可以看到,里面有三个KEY,分别为authors,musicians,programmers。那现在找一个KEY把对应的值拿出来:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

mysql> SELECT json_extract(AUTHORS,'$.lastName[0]') AS 'name', AUTHORS FROM

    -> (

    -> SELECT id,json_extract(person_desc,'$.authors[0][0]') AS "authors" FROM json_test

    -> UNION ALL

    -> SELECT id,json_extract(person_desc,'$.authors[1][0]') AS "authors" FROM json_test

    -> UNION ALL

    -> SELECT id,json_extract(person_desc,'$.authors[2][0]') AS "authors" FROM json_test

    -> ) AS T1

    -> ORDER BY NAME DESC\G

*************************** 1. row ***************************

   name: "Williams"

AUTHORS: {"genre": "fantasy", "lastName": "Williams", "firstName": "Tad"}

*************************** 2. row ***************************

   name: "Peretti"

AUTHORS: {"genre": "christianfiction", "lastName": "Peretti", "firstName": "Frank"}

*************************** 3. row ***************************

   name: "Asimov"

AUTHORS: {"genre": "sciencefiction", "lastName": "Asimov", "firstName": "Isaac"}

3 rows in set (0.00 sec)

Nach dem Login kopieren



现在来把详细的值罗列出来:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

mysql> SELECT

    -> json_extract(AUTHORS,'$.firstName[0]') AS "firstname",

    -> json_extract(AUTHORS,'$.lastName[0]') AS "lastname",

    -> json_extract(AUTHORS,'$.genre[0]') AS "genre"

    -> FROM

    -> (

    -> SELECT id,json_extract(person_desc,'$.authors[0]') AS "authors" FROM json

_test

    -> ) AS T\G

*************************** 1. row ***************************

firstname: "Isaac"

 lastname: "Asimov"

    genre: "sciencefiction"

1 row in set (0.00 sec)

Nach dem Login kopieren


我们进一步来演示把authors 这个KEY对应的所有对象删掉。

1

2

3

4

mysql> UPDATE json_test

    -> SET person_desc = json_remove(person_desc,'$.authors')\G

Query OK, 1 row affected (0.01 sec)

Rows matched: 1  Changed: 1  Warnings: 0

Nach dem Login kopieren

查找下对应的KEY,发现已经被删除掉了。

1

2

3

4

5

mysql> SELECT json_contains_path(person_desc,'all','$.authors') as authors_exist

s FROM json_test\G

*************************** 1. row ***************************

authors_exists: 0

1 row in set (0.00 sec)

Nach dem Login kopieren



总结下, 虽然MySQL5.7 开始支持JSON数据类型,但是我建议如果要使用的话,最好是把这样的值取出来,然后在应用程序段来计算,毕竟数据库是用来处理简单数据的。


Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie NetEase Mailbox Master So verwenden Sie NetEase Mailbox Master Mar 27, 2024 pm 05:32 PM

NetEase Mailbox ist eine von chinesischen Internetnutzern weit verbreitete E-Mail-Adresse und hat mit seinen stabilen und effizienten Diensten schon immer das Vertrauen der Benutzer gewonnen. NetEase Mailbox Master ist eine E-Mail-Software, die speziell für Mobiltelefonbenutzer entwickelt wurde. Sie vereinfacht das Senden und Empfangen von E-Mails erheblich und macht unsere E-Mail-Verarbeitung komfortabler. Wie Sie NetEase Mailbox Master verwenden und welche spezifischen Funktionen es bietet, wird Ihnen der Herausgeber dieser Website im Folgenden ausführlich vorstellen und hofft, Ihnen weiterzuhelfen! Zunächst können Sie die NetEase Mailbox Master-App im Mobile App Store suchen und herunterladen. Suchen Sie im App Store oder im Baidu Mobile Assistant nach „NetEase Mailbox Master“ und befolgen Sie dann die Anweisungen zur Installation. Nachdem der Download und die Installation abgeschlossen sind, öffnen wir das NetEase-E-Mail-Konto und melden uns an. Die Anmeldeschnittstelle ist wie unten dargestellt

So verwenden Sie die Baidu Netdisk-App So verwenden Sie die Baidu Netdisk-App Mar 27, 2024 pm 06:46 PM

Cloud-Speicher sind heutzutage aus unserem täglichen Leben und Arbeiten nicht mehr wegzudenken. Als einer der führenden Cloud-Speicherdienste in China hat Baidu Netdisk mit seinen leistungsstarken Speicherfunktionen, der effizienten Übertragungsgeschwindigkeit und dem komfortablen Bedienerlebnis die Gunst einer großen Anzahl von Benutzern gewonnen. Und egal, ob Sie wichtige Dateien sichern, Informationen teilen, Videos online ansehen oder Musik hören möchten, Baidu Cloud Disk kann Ihre Anforderungen erfüllen. Viele Benutzer verstehen jedoch möglicherweise nicht die spezifische Verwendung der Baidu Netdisk-App. Dieses Tutorial führt Sie daher im Detail in die Verwendung der Baidu Netdisk-App ein. Wenn Sie immer noch verwirrt sind, folgen Sie bitte diesem Artikel, um mehr im Detail zu erfahren. So verwenden Sie Baidu Cloud Network Disk: 1. Installation Wählen Sie beim Herunterladen und Installieren der Baidu Cloud-Software zunächst die benutzerdefinierte Installationsoption aus.

BTCC-Tutorial: Wie kann ich die MetaMask-Wallet an der BTCC-Börse binden und verwenden? BTCC-Tutorial: Wie kann ich die MetaMask-Wallet an der BTCC-Börse binden und verwenden? Apr 26, 2024 am 09:40 AM

MetaMask (auf Chinesisch auch Little Fox Wallet genannt) ist eine kostenlose und beliebte Verschlüsselungs-Wallet-Software. Derzeit unterstützt BTCC die Bindung an die MetaMask-Wallet. Nach der Bindung können Sie sich mit der MetaMask-Wallet schnell anmelden, Werte speichern, Münzen kaufen usw. und bei der erstmaligen Bindung einen Testbonus von 20 USDT erhalten. Im BTCCMetaMask-Wallet-Tutorial stellen wir detailliert vor, wie man MetaMask registriert und verwendet und wie man das Little Fox-Wallet in BTCC bindet und verwendet. Was ist die MetaMask-Wallet? Mit über 30 Millionen Nutzern ist MetaMask Little Fox Wallet heute eines der beliebtesten Kryptowährungs-Wallets. Die Nutzung ist kostenlos und kann als Erweiterung im Netzwerk installiert werden

Tipps zur Leistungsoptimierung für die Konvertierung von PHP-Arrays in JSON Tipps zur Leistungsoptimierung für die Konvertierung von PHP-Arrays in JSON May 04, 2024 pm 06:15 PM

Zu den Leistungsoptimierungsmethoden für die Konvertierung von PHP-Arrays in JSON gehören: Verwendung von JSON-Erweiterungen und der Funktion json_encode(); Verwendung von Puffern zur Verbesserung der Leistung der Schleifencodierung; JSON-Codierungsbibliothek.

So verwenden Sie die Xiaomi Auto-App So verwenden Sie die Xiaomi Auto-App Apr 01, 2024 pm 09:19 PM

Die Xiaomi-Autosoftware bietet Funktionen zur Fernsteuerung des Fahrzeugs, mit denen Benutzer das Fahrzeug über Mobiltelefone oder Computer fernsteuern können, z. B. das Öffnen und Schließen der Türen und Fenster des Fahrzeugs, das Starten des Motors, die Steuerung der Klimaanlage und des Audios des Fahrzeugs usw. Folgendes ist Lassen Sie uns gemeinsam mehr über die Verwendung und den Inhalt dieser Software erfahren. Umfassende Liste der Funktionen und Nutzungsmethoden der Xiaomi Auto-App. 1. Die Xiaomi Auto-App wurde am 25. März im Apple AppStore gestartet und kann jetzt im App Store auf Android-Telefonen heruntergeladen werden: Erfahren Sie mehr über die wichtigsten Highlights und technischen Parameter von Xiaomi Auto und vereinbaren Sie einen Termin für eine Probefahrt. Konfigurieren und bestellen Sie Ihr Xiaomi-Auto und unterstützen Sie die Online-Abwicklung von Aufgaben zur Autoabholung. 3. Community: Informationen zur Marke Xiaomi Auto verstehen, Autoerfahrungen austauschen und das wundervolle Autoleben teilen: Das Mobiltelefon ist die Fernbedienung, Fernbedienung, Echtzeitsicherheit, einfach

Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung? Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung? May 06, 2024 pm 10:09 PM

Anmerkungen in der Jackson-Bibliothek steuern die JSON-Serialisierung und -Deserialisierung: Serialisierung: @JsonIgnore: Ignorieren Sie die Eigenschaft @JsonProperty: Geben Sie den Namen an @JsonGetter: Verwenden Sie die get-Methode @JsonSetter: Verwenden Sie die set-Methode Deserialisierung: @JsonIgnoreProperties: Ignorieren Sie die Eigenschaft @ JsonProperty: Geben Sie den Namen @JsonCreator an: Verwenden Sie den Konstruktor @JsonDeserialize: Benutzerdefinierte Logik

So nutzen Sie den Dewu-Ratenkauf So nutzen Sie den Dewu-Ratenkauf Mar 24, 2024 pm 01:46 PM

Wie nutzt man den Dewu-Ratenkauf? Sie können den Ratenzahlungsservice nutzen, um Ihre Lieblingswaren in der Dewu-App zu kaufen Interessierte Benutzer können vorbeikommen und einen Blick darauf werfen. Dewu-Nutzungsanleitung So verwenden Sie den Dewu-Ratenkauf 1. Öffnen Sie zunächst die Dewu-App, rufen Sie die Hauptseite auf, wählen Sie Ihr Lieblingsprodukt aus und rufen Sie die Kaufseite auf. 2. Klicken Sie dann auf der Produktkaufseite im Bild unten auf [Jetzt kaufen]. 3. Wählen Sie dann die entsprechende Codenummer aus und klicken Sie auf den Preis auf der linken Seite. 4. Wählen Sie dann auf der Bestellbestätigungsseite in der unteren rechten Ecke aus. Klicken Sie auf die Schaltfläche hinter [Huabei-Ratenzahlung]. Wählen Sie einfach die Ratenart aus und schon sind Sie fertig

Wie erstelle ich ein Videomatrix-Konto? Welche Arten von Matrixkonten gibt es? Wie erstelle ich ein Videomatrix-Konto? Welche Arten von Matrixkonten gibt es? Mar 21, 2024 pm 04:57 PM

Mit der Beliebtheit von Kurzvideoplattformen ist Video-Matrix-Account-Marketing zu einer aufstrebenden Marketingmethode geworden. Durch die Erstellung und Verwaltung mehrerer Konten auf verschiedenen Plattformen können Unternehmen und Einzelpersonen Ziele wie Markenwerbung, Fanwachstum und Produktverkäufe erreichen. In diesem Artikel wird erläutert, wie Sie Video-Matrix-Konten effektiv nutzen und verschiedene Arten von Video-Matrix-Konten vorgestellt. 1. Wie erstelle ich ein Videomatrix-Konto? Um ein gutes Video-Matrix-Konto zu erstellen, müssen Sie die folgenden Schritte befolgen: Zunächst müssen Sie klären, was das Ziel Ihres Video-Matrix-Kontos ist, sei es für die Markenkommunikation, das Fanwachstum oder den Produktverkauf. Klare Ziele helfen dabei, entsprechende Strategien zu entwickeln. 2. Wählen Sie eine Plattform: Wählen Sie eine geeignete Kurzvideoplattform basierend auf Ihrer Zielgruppe. Zu den aktuellen Mainstream-Kurzvideoplattformen gehören Douyin, Kuaishou, Huoshan Video usw.

See all articles