205 votes

Comment stocker des tableaux dans MySQL ?

J'ai deux tables dans MySQL. La table Person a les colonnes suivantes :

id

nom

fruits

El fruits peut contenir null ou un tableau de chaînes de caractères comme ('apple', 'orange', 'banana'), ou ('strawberry'), etc. La deuxième table est la Table Fruit et possède les trois colonnes suivantes :

nom_fruit

couleur

prix

pomme

rouge

2

orange

orange

3

-----------

--------

------

Alors, comment dois-je concevoir le fruits dans la première table afin qu'elle puisse contenir un tableau de chaînes de caractères qui prennent des valeurs de la colonne fruit_name dans la deuxième table ? Comme il n'y a pas de type de données tableau dans MySQL, comment dois-je faire ?

-1voto

webdevfreak Points 47

Utilisez le type de champ de base de données BLOB pour stocker les tableaux.

Réf : http://us.php.net/manual/en/function.serialize.php

Valeurs de retour

Renvoie une chaîne contenant une représentation en flux d'octets de la valeur qui peut être stockée n'importe où.

Notez qu'il s'agit d'une chaîne de caractères binaire qui peut inclure des octets nuls. doit être stockée et traitée comme telle. Par exemple, la sortie de serialize() doit généralement être stockée dans un champ BLOB d'une base de données, plutôt que dans un champ CHAR ou TEXT.

-10voto

echo_Me Points 20305

Vous pouvez stocker votre tableau en utilisant group_Concat comme ceci

 INSERT into Table1 (fruits)  (SELECT GROUP_CONCAT(fruit_name) from table2)
 WHERE ..... //your clause here

ICI un exemple en violon

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X