Maison  >  Article  >  base de données  >  Comment puis-je créer et insérer des objets JSON dans des tables MySQL ?

Comment puis-je créer et insérer des objets JSON dans des tables MySQL ?

DDD
DDDoriginal
2024-10-25 09:22:28324parcourir

How Can I Create and Insert JSON Objects into MySQL Tables?

Création et insertion d'objets JSON à l'aide de requêtes MySQL

Supposons que vous essayiez de créer des objets JSON et de lire leurs valeurs dans des tables MySQL, mais que vous rencontriez erreurs. Le code fourni cherche à créer un objet JSON et à l'utiliser pour remplir la table Personne :

SET @j = '{"key1": "value1", "key2": "value2"}';
CREATE TABLE Person (name int,id int);
INSERT INTO Person (name,id) SELECT * FROM OPENJSON(@j) WITH (name int,id int);

Pour résoudre ces erreurs, suivez ces étapes :

  1. Définir le type de données JSON pour les colonnes de la table :
    Créez la table Personne avec une colonne de nom du type de données JSON.

    CREATE TABLE `person` (
      `name` json DEFAULT NULL
    );
  2. Insérer des valeurs JSON :
    Deux options sont disponibles :

    • Syntaxe du tableau : Insérez les données JSON sous forme de tableau à l'aide de crochets.

      INSERT INTO `person` (`name`)
      VALUES ('["name1", "name2", "name3"]');
    • Clé : Valeur Syntaxe : Insérez des données JSON à l'aide d'accolades et de paires clé-valeur.

      INSERT INTO person VALUES ('{"pid": 101, "name": "name1"}');
  3. Sélectionnez les données JSON :
    Récupérez les données JSON à l'aide d'une requête qui vérifie les correspondances dans la colonne de nom.

    SELECT * FROM `person` WHERE JSON_CONTAINS(name, '["name1"]');

Notez que cette fonctionnalité est uniquement pris en charge dans les versions MySQL 5.7 ou supérieures avec InnoDB.

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