Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Serialisieren vs. Implodieren

Wenn Sie Ihre Tabellen nicht (über?)normalisieren möchten und wirklich nur eine Liste von IDs speichern möchten, schlage ich vor, eine einfache kommagetrennte Liste zu verwenden, da MySQL bereits einige Funktionen hat, die direkt mit Komma- getrennte Stringwerte:

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'

Natürlich können Sie keine SQL JOINs ausführen, aber es kann trotzdem hilfreich sein.