


Comment stocker les données JSON dans MySQL et les interroger?
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.
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.

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:

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.

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
ouDECIMAL
) 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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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

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

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