45 votes

Annuler la sérisation par requête au niveau de la base de données elle-même

J’ai une valeur de colonne stockée dans la base de données comme :

a:2:{i:0;s:2:"US »;i:1;s:2:"19 »;}

Je veux le désérialiser pendant la requête mysql plutôt que d’utiliser la fonction php `` après avoir récupéré les données. Je veux le faire de cette façon afin de pouvoir joindre une autre table avec la valeur sérialisée. Cela éviterait d’exécuter une requête séparée après l’avoir désérialisé avec php, juste pour les données jointes.

70voto

Pentium10 Points 68884

MySQL ne sait pas ce qu’est une sérialisation PHP. Vous ne pouvez pas le faire.

9voto

Amil Waduwawara Points 748

C’est une très mauvaise pratique d’ajouter des structures dépendantes du langage de programmation à la base de données. Si vous le faites, vous devez toujours vous fier à cette langue.

La meilleure approche consiste à normaliser la structure des tables (différents champs ou tables).

L’approche suivante consiste à enregistrer les données sous forme de chaîne délimitée (par exemple : ). Ensuite, vous pouvez utiliser MySQL ou utiliser des mécanismes de sérialisation standard comme l’encodage JSON.

9voto

david-giorgi Points 13

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