Maison > base de données > tutoriel mysql > Comment puis-je stocker et récupérer des données de type tableau dans MySQL ?

Comment puis-je stocker et récupérer des données de type tableau dans MySQL ?

Barbara Streisand
Libérer: 2024-12-13 17:27:12
original
914 Les gens l'ont consulté

How Can I Store and Retrieve Array-Like Data in MySQL?

Méthodes pour stocker des tableaux dans une base de données MySQL

Bien que MySQL ne prenne pas en charge nativement les tableaux, il propose des approches alternatives pour stocker des données de type tableau. Une méthode courante consiste à utiliser plusieurs tables et à établir des relations entre elles à l'aide des opérations JOIN.

Création de plusieurs tables

Considérez le scénario décrit dans la question. Pour stocker un tableau de fruits dans la colonne "fruits" de la table Personne, nous pouvons créer les tables suivantes :

  • Personne :

    • id (INT)
    • nom (VARCHAR(50))
  • Fruit :

    • nom_fruit (VARCHAR(20))
    • couleur (VARCHAR(20) ))
    • prix (INT)
  • Person_Fruit (table de liaison) :

    • person_id (INT)
    • fruit_name (VARCHAR(20))

Établir des relations

La table Person_Fruit sert de table de liaison, créant un de nombreuses relations entre les tables Personne et Fruit. Une ligne de ce tableau représente une relation entre une personne spécifique et un fruit spécifique.

Stockage de données de type tableau

Pour stocker un tableau de fruits pour une personne dans la colonne "fruits", insérez dans la table Person_Fruit plusieurs lignes, chaque ligne représentant un fruit.

Par exemple, pour stocker les fruits "pomme", "orange" et "banane" pour une personne avec l'identifiant = 1, insérez les lignes suivantes dans Person_Fruit :

(1, "apple")
(1, "orange")
(1, "banana")
Copier après la connexion

Récupération de données de type tableau

Pour récupérer la gamme de fruits d'une personne, joignez les tables Person, Person_Fruit et Fruit en utilisant ce qui suit requête :

SELECT p.`name` AS `person_name`, GROUP_CONCAT(f.`fruit_name`) AS `fruits`
FROM Person AS p
INNER JOIN Person_Fruit AS pf ON p.`id` = pf.`person_id`
INNER JOIN Fruit AS f ON pf.`fruit_name` = f.`fruit_name`
GROUP BY p.`name`
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal