Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sérialiser vs imploser

Si vous ne voulez pas (sur?) Normaliser vos tables, et que vous voulez vraiment juste stocker une liste d'identifiants, je vous suggère d'utiliser une simple liste séparée par des virgules, car MySQL a déjà quelques fonctions qui peuvent directement traiter avec des virgules. valeurs de chaîne séparées :

FIND_IN_SET :http://dev. mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set

SELECT FIND_IN_SET('b','a,b,c,d'); --> 2

CONCAT_WS :http://dev.mysql. com/doc/refman/5.0/en/string-functions.html#function_concat-ws

SELECT CONCAT_WS(',','First name',NULL,'Last Name'); --> 'First name,Last Name'

Bien sûr, vous ne pourrez pas faire de SQL JOIN, mais cela peut toujours être utile.