Maison base de données tutoriel mysql Explication détaillée d'exemples d'opérations de fonction JSON dans Mysql5.7

Explication détaillée d'exemples d'opérations de fonction JSON dans Mysql5.7

Jul 27, 2017 pm 03:33 PM
javascript json

Cet article explique avec vous comment utiliser la fonction d'exploitation de json dans mysql5.7 et des exemples associés. C'est très pratique. Les amis dans le besoin peuvent s'y référer

Avant-propos

JSON. est un format d'échange de données léger qui utilise un format de texte indépendant du langage, similaire à XML, mais plus simple, plus facile à lire et à écrire que XML. Il est facile à analyser et à générer pour les machines, et réduira la transmission de la bande passante du réseau.

Le format de JSON est très simple : nom/valeur clé. Dans les versions précédentes de MySQL, pour implémenter un tel stockage, du texte de grande taille VARCHAR ou TEXT était utilisé. Après la sortie de MySQL 5.7, le type de données JSON ainsi que la récupération et d'autres fonctions d'analyse de ce type ont été spécialement conçus.

Faisons-le en pratique.

Créez un tableau avec des champs JSON

Par exemple, un tableau 'article', les champs incluent

id, titre, tags

un article Il y aura plusieurs balises, les balises peuvent être définies sur le type JSON

L'instruction de création de table est la suivante :


CREATE TABLE article` (
 id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
title` varchar (200) NOT NULL ,
 tags` json DEFAULT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
Copier après la connexion

Insérer des données

Insérez une donnée avec du contenu JSON et exécutez l'instruction insert :


INSERT INTO article` (`title`, `tags`)
VALUES (
'体验 Mysql JSON' ,
'["Mysql", "Database"]'
);
Copier après la connexion

Ce qui est inséré ici est un tableau JOSN ["Mysql", "Database "]

Interrogez tout le contenu de la table de l'article, vous pouvez voir les données nouvellement insérées

Requête

Utilisez la fonction JSON pour effectuer deux requêtes simples

1. Rechercher tous les articles avec le tag "Mysql"


SELECT * FROM article`
WHERE JSON_CONTAINS(tags, '["Mysql"]' );
Copier après la connexion

2. Rechercher les articles commençant par "Data" dans le tag


SELECT * FROM article`
WHERE JSON_SEARCH(tags, 'one' , 'Data%' ) IS NOT NULL ;
Copier après la connexion

La signification des trois paramètres dans la fonction JSON_SEARCH :

1 Le document à trouver

2. deux options, 'une' recherche Le premier qui remplit les conditions, 'tous' trouve tous ceux qui remplissent les conditions

3 Conditions de recherche

Chemin JSON

JSON. Le chemin est utilisé pour localiser le champ cible dans le document, par exemple


SELECT JSON_EXTRACT(
'{"id": 1, "name": "mysql"}' ,
'$.name'
);
Copier après la connexion

Le résultat est : mysql

JSON_EXTRACT() est l'extraction JSON fonction, $.name est un chemin JSON, indiquant l'emplacement du document Le champ de nom

Le chemin JSON commence par $, voici quelques exemples supplémentaires


{
"num" : 123,
"arr" : [1, 2],
"obj" : {
"a" : 3,
"b" : 4
}
}
$.num //结果:123
$.arr //结果:[1, 2]
$.arr[1] //结果:1
$.obj.a //结果:3
$**.b //结果:4
Copier après la connexion

Exemples de requête utilisant le chemin JSON


SELECT
tags-> "$[0]" as 'tag'
FROM article`;
Copier après la connexion

Mettre à jour les données

Par exemple, si vous souhaitez ajouter une balise "dev" à un article, la condition de mise à jour est que la balise "Mysql" est déjà incluse, et il n'y a pas de "dev" "Les données de la balise

l'instruction de mise à jour sont les suivantes :


UPDATE article`
SET tags = JSON_MERGE(tags, '["dev"]' )
WHERE
JSON_SEARCH(tags, 'one' , 'dev' ) IS NULL
AND
JSON_SEARCH(tags, 'one' , 'Mysql' ) IS NOT NULL ;
Copier après la connexion

Vous pouvez voir que la balise "dev"

a été ajoutée avec succès. Un autre exemple Si vous souhaitez mettre à jour la balise "Mysql" vers "Mysql 5.7.13", la mise à jour. La déclaration est la suivante :

UPDATE article` set tags = JSON_SET(tags, '$[0] ', 'Mysql 5.7. 13' ) ;<code>UPDATE article` set tags = JSON_SET(tags, ‘$[0] ', ‘Mysql 5.7.13' ) ;<br>

J'ai expérimenté JSON_MERGE et JSON_SET ci-dessus, et il existe de nombreuses fonctions pour modifier JSON, par exemple :

JSON_INSERT(doc, path, val[, path, val]…)

Insérer des données

JSON_REPLACE(doc, path, val[, path, val]…)

Remplacer les données

JSON_ARRAY_APPEND(doc, path, val[, path, val]…)

Ajouter les données à la fin du tableau

JSON_REMOVE(doc , path[, path]…)<code>JSON_REMOVE(doc, path[, path]…)<br>

Supprimer les données de l'emplacement spécifié

Grâce à l'expérience de fonctionnement initiale, j'ai l'impression que le fonctionnement JSON de Mysql est relativement fluide. est vraiment pratique pour utiliser la structure des documents dans Mysql à l'avenir

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la différence entre MySQL5.7 et MySQL8.0 ? Quelle est la différence entre MySQL5.7 et MySQL8.0 ? Feb 19, 2024 am 11:21 AM

Quelle est la différence entre MySQL5.7 et MySQL8.0 ?

Conseils d'optimisation des performances pour la conversion de tableaux PHP en JSON Conseils d'optimisation des performances pour la conversion de tableaux PHP en JSON May 04, 2024 pm 06:15 PM

Conseils d'optimisation des performances pour la conversion de tableaux PHP en JSON

Comment les annotations de la bibliothèque Jackson contrôlent-elles la sérialisation et la désérialisation JSON ? Comment les annotations de la bibliothèque Jackson contrôlent-elles la sérialisation et la désérialisation JSON ? May 06, 2024 pm 10:09 PM

Comment les annotations de la bibliothèque Jackson contrôlent-elles la sérialisation et la désérialisation JSON ?

Tutoriel d'utilisation de Pandas : Démarrage rapide pour la lecture de fichiers JSON Tutoriel d'utilisation de Pandas : Démarrage rapide pour la lecture de fichiers JSON Jan 13, 2024 am 10:15 AM

Tutoriel d'utilisation de Pandas : Démarrage rapide pour la lecture de fichiers JSON

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP

Compréhension approfondie de PHP : méthode d'implémentation de conversion de JSON Unicode en chinois Compréhension approfondie de PHP : méthode d'implémentation de conversion de JSON Unicode en chinois Mar 05, 2024 pm 02:48 PM

Compréhension approfondie de PHP : méthode d'implémentation de conversion de JSON Unicode en chinois

Comment obtenir facilement le code d'état HTTP en JavaScript Comment obtenir facilement le code d'état HTTP en JavaScript Jan 05, 2024 pm 01:37 PM

Comment obtenir facilement le code d'état HTTP en JavaScript

Conseils rapides pour convertir des tableaux PHP en JSON Conseils rapides pour convertir des tableaux PHP en JSON May 03, 2024 pm 06:33 PM

Conseils rapides pour convertir des tableaux PHP en JSON

See all articles