Table des matières
1. Stockage des données JSON dans MySQL
Créer une table avec une colonne JSON
Insérer les données JSON
2. Interroger les données JSON
Extraire des valeurs en utilisant -> et ->>
Recherche dans JSON
3. Mise à jour des champs JSON
4. Indexation des données JSON (indirectement)
Exemple: indexez le champ de messagerie à l'intérieur de JSON
Meilleures pratiques
Maison base de données tutoriel mysql Comment stocker les données JSON dans MySQL et les interroger?

Comment stocker les données JSON dans MySQL et les interroger?

Aug 08, 2025 pm 12:02 PM
requête mysql Données JSON

En utilisant MySQL 5.7 et plus, vous pouvez stocker et interroger directement les données JSON via des types de données JSON; 2. Définissez les colonnes JSON et insérez des données JSON légales lors de la création d'une table, et MySQL vérifiera automatiquement sa validité; 3. Utilisez les opérateurs -> et - >> pour extraire les valeurs de champ JSON, parmi lesquelles - >> peut être utilisée pour supprimer les citations de chaîne à comparer; 4. Recherchez le contenu JSON dans l'endroit où les clauses via des fonctions telles que JSON_CONTAIN, CAST, etc., et notez que la comparaison numérique nécessite une conversion de type; 5. Utilisez les fonctions JSON_SET, JSON_REPLACE et JSON_REMOVE pour modifier le champ JSON; 6. Bien que les colonnes JSON ne puissent pas être directement indexées, les index peuvent être créés en générant des colonnes (telles que des colonnes virtuelles basées sur JSON_UNQUOTE) pour améliorer les performances de la requête; 7. Il est recommandé d'extraire les champs fréquemment interrogés dans des colonnes générées et d'établir des index pour éviter la surdiffion sur les grandes requêtes d'objet JSON, et maintenir la structure des données de base pour obtenir un équilibre de flexibilité et de performances.

Comment stocker les données JSON dans MySQL et les interroger?

Le stockage et l'interrogation des données JSON dans MySQL sont simples si vous utilisez MySQL 5.7 ou version ultérieure, car ces versions ont une prise en charge intégrée pour les types de données JSON. Cela vous permet de stocker des données semi-structurées flexibles tout en bénéficiant des capacités de requête SQL. Voici comment le faire efficacement.

Comment stocker les données JSON dans MySQL et les interroger?

1. Stockage des données JSON dans MySQL

Pour stocker JSON, utilisez le type de données JSON lors de la définition d'une colonne dans votre table.

Créer une table avec une colonne JSON

 Créer des utilisateurs de table (
    id int Auto_Increment Clé primaire,
    nom varchar (100),
    Profile JSON
));

Insérer les données JSON

Vous pouvez insérer des objets ou des tableaux JSON valides:

Comment stocker les données JSON dans MySQL et les interroger?
 Insérer dans les valeurs des utilisateurs (nom, profil) (
    'Alice',
    '{
        "Age": 30,
        "City": "New York",
        "Hobbies": ["Reading", "Cycling"],
        "contact": {
            "Courriel": "Alice@example.com",
            "téléphone": "123-456-7890"
        }
    } '
));

MySQL valide le JSON sur l'insertion. JSON non valide provoquera une erreur.


2. Interroger les données JSON

MySQL fournit des fonctions et des opérateurs pour extraire et rechercher dans les champs JSON.

Comment stocker les données JSON dans MySQL et les interroger?

Extraire des valeurs en utilisant -> et ->>

  • column->'$.path' Renvoie la valeur JSON (avec des devis pour les chaînes).
  • column->>'$.path' Renvoie la valeur scalaire non cotée (mieux pour les comparaisons).
 - Obtenez l'objet de contact complet
Sélectionnez Profil -> '$. Contact' comme contact depuis les utilisateurs où name = 'Alice';

- recevoir l'e-mail non coté
Sélectionnez Profile - >> '$. Contact.email' comme e-mail des utilisateurs où name = 'Alice';

- Obtenez l'âge et la ville
SÉLECTIONNER 
    Profil - >> '$. Âge' comme âge,
    Profil - >> '$. City' As City
Des utilisateurs;

Recherche dans JSON

Utilisez JSON_CONTAINS() ou des expressions de chemin dans WHERE clauses.

 - Trouvez des utilisateurs qui ont du "vélo" dans les passe-temps
Sélectionnez le nom des utilisateurs 
Où JSON_CONTAINS (Profil -> '$. Hobbies', '"Cycling"');

- Trouvez des utilisateurs de plus de 25 ans
Sélectionnez le nom des utilisateurs 
Où coulé (profil - >> '$. Age' comme non signé)> 25;

- Trouvez des utilisateurs de New York
Sélectionnez le nom des utilisateurs 
Où le profil - >> '$. City' = 'New York';

Remarque: Puisque ->> Renvoie le texte, vous devrez peut-être lancer des valeurs (par exemple, SIGNED , UNSIGNED ou DECIMAL ) pour des comparaisons numériques.


3. Mise à jour des champs JSON

Utilisez JSON_SET() , JSON_REPLACE() , ou JSON_REMOVE() pour modifier le contenu JSON.

 - Ajouter ou mettre à jour un champ
Mettre à jour les utilisateurs 
Set Profil = JSON_SET (Profil, '$ .age', 31, '$ .City', 'Boston')
Où name = 'Alice';

- Ajouter à un tableau
Mettre à jour les utilisateurs 
Set profil = json_array_append (profil, '$ .hobbies', 'natation')
Où name = 'Alice';

- Retirez un champ
Mettre à jour les utilisateurs 
Set Profil = JSON_Remove (Profil, '$ .Contact.phone')
Où name = 'Alice';

4. Indexation des données JSON (indirectement)

Vous ne pouvez pas indexer directement une colonne JSON , mais vous pouvez créer des colonnes (virtuelles) générées et indexer.

Exemple: indexez le champ de messagerie à l'intérieur de JSON

 Modifier les utilisateurs de la table 
Ajouter un e-mail de colonne Varchar (255) 
Généré toujours en tant que (JSON_UNQUOTE (profil - >> '$. Contact.email')));

Créer index idx_email sur les utilisateurs (e-mail);

Désormais, le filtrage des requêtes sur email peut utiliser l'index:

 Sélectionnez le nom des utilisateurs où email = 'Alice@example.com';

Cela améliore considérablement les performances pour les lookups fréquents basés sur JSON.


Meilleures pratiques

  • Utilisez JSON pour des attributs flexibles ou facultatifs (par exemple, préférences des utilisateurs, paramètres).
  • Gardez les champs fréquemment interrogés ou critiques (comme le courrier électronique, le statut) comme colonnes régulières ou utilisez des colonnes générées avec des index.
  • Évitez de stocker de grands blobs JSON si vous les interrogez souvent, normalisez lorsque cela est possible.
  • Validez la structure JSON dans votre application pour éviter les erreurs.

Le stockage de JSON dans MySQL vous donne une flexibilité sans sacrifier trop de performances, en particulier lorsque vous le combinez avec des colonnes générées et une indexation appropriée. Il est idéal pour l'évolution des schémas ou des données hiérarchiques qui ne s'intègrent pas parfaitement dans les tables rigides.

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

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)

Sujets chauds

Tutoriel PHP
1540
276
Conseils de développement PHP : Comment utiliser Redis pour mettre en cache les résultats des requêtes MySQL Conseils de développement PHP : Comment utiliser Redis pour mettre en cache les résultats des requêtes MySQL Jul 02, 2023 pm 03:30 PM

Conseils de développement PHP : Comment utiliser Redis pour mettre en cache les résultats des requêtes MySQL Introduction : Dans le processus de développement Web, la requête de base de données est l'une des opérations courantes. Cependant, des requêtes fréquentes dans la base de données peuvent entraîner des problèmes de performances et affecter la vitesse de chargement des pages Web. Afin d'améliorer l'efficacité des requêtes, nous pouvons utiliser Redis comme cache et placer les données fréquemment interrogées dans Redis, réduisant ainsi le nombre de requêtes vers MySQL et améliorant la vitesse de réponse des pages Web. Cet article présentera le développement de l'utilisation de Redis pour mettre en cache les résultats des requêtes MySQL.

Comment PHP et MySQL gèrent-ils les données JSON ? Comment PHP et MySQL gèrent-ils les données JSON ? Jul 12, 2023 am 10:00 AM

Comment PHP et MySQL gèrent-ils les données JSON ? Dans les applications Web modernes, JSON (JavaScriptObjectNotation) est souvent utilisé pour stocker et échanger des données. PHP et MySQL sont deux technologies couramment utilisées, et comment les utiliser pour traiter les données JSON est une question courante. Cet article explique comment utiliser PHP et MySQL pour traiter les données JSON et fournit quelques exemples de code. 1. Exporter les données de MySQL vers JSON Tout d'abord, commençons

Conseils de développement PHP : Comment utiliser Memcached pour mettre en cache les résultats des requêtes MySQL Conseils de développement PHP : Comment utiliser Memcached pour mettre en cache les résultats des requêtes MySQL Jul 02, 2023 am 08:48 AM

Conseils de développement PHP : Comment utiliser Memcached pour mettre en cache les résultats des requêtes MySQL Memcached est un système de mise en cache d'objets à mémoire distribuée hautes performances qui peut être utilisé pour réduire la charge sur la base de données et améliorer les performances des applications. Dans le développement PHP, nous rencontrons souvent des situations dans lesquelles nous devons interroger fréquemment la base de données. À l'heure actuelle, l'utilisation de Memcached pour mettre en cache les résultats des requêtes peut considérablement améliorer la vitesse de réponse du système. Cet article explique comment utiliser Memcached pour mettre en cache les résultats des requêtes MySQL.

Comment analyser les données JSON entrantes à l'aide du corps de la requête dans FastAPI Comment analyser les données JSON entrantes à l'aide du corps de la requête dans FastAPI Jul 28, 2023 pm 04:17 PM

Comment analyser les données JSON entrantes à l'aide du corps de la requête dans FastAPI FastAPI est un framework Web moderne basé sur Python qui offre des fonctionnalités riches et une prise en charge asynchrone hautes performances. Lorsque vous utilisez FastAPI pour gérer les requêtes HTTP, il est souvent nécessaire d'analyser les données JSON entrantes. Cet article explique comment utiliser le corps de la requête pour analyser les données JSON entrantes dans FastAPI et fournit des exemples de code correspondants. Importer les dépendances Tout d'abord, nous devons importer les dépendances FastAPI et JS

Conseils de développement PHP : Comment utiliser Xcache pour mettre en cache les résultats des requêtes MySQL Conseils de développement PHP : Comment utiliser Xcache pour mettre en cache les résultats des requêtes MySQL Jul 02, 2023 pm 05:33 PM

Conseils de développement PHP : Comment utiliser Xcache pour mettre en cache les résultats des requêtes MySQL Introduction : Dans les applications Web, nous devons souvent effectuer un grand nombre d'opérations de requête de base de données. Ces opérations de requête peuvent consommer beaucoup de ressources système et de temps. Pour améliorer les performances et réduire la charge sur le serveur, nous pouvons utiliser la mise en cache pour stocker et réutiliser les résultats des requêtes. Dans cet article, nous verrons comment utiliser l'extension Xcache pour mettre en cache les résultats des requêtes MySQL afin d'améliorer la réactivité et les performances de vos applications Web. Introduction à Xcache

Technologie d'implémentation de requêtes de données dans MySQL Technologie d'implémentation de requêtes de données dans MySQL Jun 14, 2023 am 11:04 AM

MySQL est aujourd'hui l'un des systèmes de bases de données relationnelles les plus populaires. Il présente des caractéristiques de haute performance, de sécurité et d'évolutivité et est largement utilisé dans les travaux de gestion de données dans divers secteurs. Parmi elles, la requête de données est l'une des opérations les plus basiques de MySQL, et c'est aussi quelque chose avec laquelle nous sommes souvent en contact dans le développement quotidien. Cet article présentera la technologie d'implémentation des requêtes de données dans MySQL, y compris l'utilisation d'instructions SQL, l'indexation, l'optimisation, etc., pour aider chacun à mieux maîtriser la technologie de requête de données de MySQL. Utilisation d'instructions SQL SQL est un langage de requête structuré (St

Comment créer des opérations de requête de données MySQL hautes performances à l'aide du langage Go Comment créer des opérations de requête de données MySQL hautes performances à l'aide du langage Go Jun 17, 2023 am 08:42 AM

Dans le développement de logiciels modernes, le traitement des données et les opérations de requête sont essentiels. En tant que système de gestion de bases de données relationnelles, MySQL joue un rôle important dans la plupart des applications d'entreprise. En tant que langage de programmation efficace et rapide, le langage Go est de plus en plus utilisé dans les opérations de traitement de données et de requêtes. Cet article explique comment utiliser le langage Go pour créer des opérations de requête de données MySQL hautes performances, y compris la connexion à la base de données, la construction et l'exécution des instructions de requête, etc. 1. Connexion à la base de données utilisant le langage Go pour faire fonctionner MySQL

Solution au problème selon lequel l'interface PHP ne peut pas renvoyer de données au format JSON Solution au problème selon lequel l'interface PHP ne peut pas renvoyer de données au format JSON Mar 12, 2024 pm 05:45 PM

Solution au problème selon lequel l'interface PHP ne peut pas renvoyer les données au format JSON. Au cours du processus de développement, nous rencontrons souvent des situations où nous devons utiliser l'interface PHP pour renvoyer des données au format JSON. Cependant, vous pouvez parfois rencontrer des problèmes qui ne permettent pas de renvoyer correctement les données au format JSON. Cet article présentera quelques solutions et donnera des exemples de code spécifiques. Analyse du problème Lorsque nous utilisons PHP pour écrire des interfaces, nous devons généralement convertir les données au format JSON et les renvoyer à la page frontale ou à d'autres applications. Mais parfois, nous pouvons rencontrer les problèmes suivants : Interface

See all articles