Maison  >  Article  >  développement back-end  >  Comment MySQL interroge-t-il et filtre-t-il les données JSON stockées ?

Comment MySQL interroge-t-il et filtre-t-il les données JSON stockées ?

PHPz
PHPzoriginal
2023-07-12 13:43:362194parcourir

Comment MySQL interroge-t-il et filtre-t-il les données JSON stockées ?

JSON (JavaScript Object Notation) est un format d'échange de données léger largement utilisé dans les applications modernes. MySQL a ajouté la prise en charge de JSON à partir de la version 5.7, nous permettant de stocker et d'interroger des données au format JSON dans la base de données MySQL. Cet article explique comment utiliser MySQL pour interroger et filtrer les données JSON stockées, et fournit des exemples de code correspondants.

  1. Créer une table de test et insérer des données

Tout d'abord, nous devons créer une table de test et insérer des exemples de données contenant des données JSON. Ci-dessous la définition d'une table nommée "users" :

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    info JSON
);

INSERT INTO users (name, info) VALUES
    ('John', '{"age": 30, "city": "New York", "email": "john@example.com"}'),
    ('Alice', '{"age": 25, "city": "Los Angeles", "email": "alice@example.com"}'),
    ('Bob', '{"age": 35, "city": "Chicago", "email": "bob@example.com"}');

Dans l'exemple ci-dessus, la table "users" contient trois champs : id, name et info. Parmi eux, le type de données du champ d'information est JSON.

  1. Requête des valeurs d'attribut dans les champs JSON

Pour interroger les valeurs d'attribut dans les champs JSON, vous pouvez utiliser la fonction JSON_EXTRACT fournie par MySQL. Voici un exemple :

SELECT name, JSON_EXTRACT(info, '$.age') AS age FROM users;

La requête ci-dessus renverra le nom et les informations sur l'âge de chaque utilisateur. Parmi eux, le premier paramètre de la fonction JSON_EXTRACT est le champ JSON à interroger, et le deuxième paramètre est le chemin d'attribut à extraire. Dans cet exemple, nous avons extrait l'attribut age du champ d'information.

  1. Utilisez les conditions WHERE pour filtrer les données JSON

Dans MySQL, nous pouvons utiliser les conditions WHERE pour filtrer les données JSON. Voici un exemple :

SELECT name, info
FROM users
WHERE JSON_EXTRACT(info, '$.age') > 30;

La requête ci-dessus renverra les noms et les données JSON de tous les utilisateurs de plus de 30 ans. Comme vous pouvez le voir, nous pouvons utiliser la fonction JSON_EXTRACT pour obtenir les valeurs d'attribut dans le champ JSON et utiliser ces valeurs d'attribut dans la condition WHERE pour filtrer.

  1. Mettre à jour les valeurs d'attribut dans les champs JSON

Pour mettre à jour les valeurs d'attribut dans les champs JSON, vous pouvez utiliser la fonction JSON_SET fournie par MySQL. Voici un exemple :

UPDATE users
SET info = JSON_SET(info, '$.city', 'Seattle')
WHERE name = 'Alice';

L'opération de mise à jour ci-dessus modifiera les informations sur la ville de l'utilisateur nommé "Alice" en "Seattle". Le premier paramètre de la fonction JSON_SET est le champ JSON à mettre à jour, le deuxième paramètre est le chemin d'attribut à modifier et le troisième paramètre est la nouvelle valeur d'attribut.

  1. Supprimer les valeurs d'attribut dans les champs JSON

Pour supprimer les valeurs d'attribut dans les champs JSON, vous pouvez utiliser la fonction JSON_REMOVE fournie par MySQL. Voici un exemple :

UPDATE users
SET info = JSON_REMOVE(info, '$.email')
WHERE name = 'Bob';

L'opération de mise à jour ci-dessus supprimera l'attribut d'adresse email de l'utilisateur nommé "Bob". Le premier paramètre de la fonction JSON_REMOVE est le champ JSON de l'attribut à supprimer, et le deuxième paramètre est le chemin de l'attribut à supprimer.

Conclusion

Cet article explique comment utiliser MySQL pour interroger et filtrer les données JSON stockées, et fournit des exemples de code correspondants. En utilisant la fonction JSON_EXTRACT, nous pouvons facilement obtenir les valeurs d'attribut dans le champ JSON ; et en utilisant les fonctions JSON_SET et JSON_REMOVE, nous pouvons mettre à jour et supprimer les valeurs d'attribut. L'utilisation de MySQL pour stocker et manipuler les données JSON répond mieux aux besoins des applications modernes.

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:
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