Nein, das würde ja bei
id key1 anz
1 a,b 1dann
id key1 anz
1 a,b,b 4ergeben. (btw.: die Spalte files habe ich gedanklich mit der Spalte anz gleichgesetzt, weil ich sonst nicht wüsste, wo sie plötzlich herkommt.)
Das stimmt nicht. Das Set Feld, kann einen Wert immer nur einmal haben.
Vorhin hatte ich keine Möglichkeit das zu testen, mein Vorschlag geht ohne Probleme.
CREATE TABLE `tipps` (
`test` set('0','1','-1') NOT NULL default ''
) ;
--
-- Daten für Tabelle `tipps`
--
INSERT INTO `tipps` VALUES ('0,-1');
INSERT INTO `tipps` VALUES ('0,-1');
INSERT INTO `tipps` VALUES ('0,1,-1');
INSERT INTO `tipps` VALUES ('-1');
INSERT INTO `tipps` VALUES ('1,-1');
INSERT INTO `tipps` VALUES ('0,-1');
INSERT INTO `tipps` VALUES ('1,-1');
INSERT INTO `tipps` VALUES ('-1');
und dann
UPDATE tipps SET test = CONCAT_WS(',', test, '-1') WHERE 1
Macht genau das richtige.
also: Die Spalte anz wird immer geupdatet, die Spalte key1 aber nur dann, wenn der entsprechende Buchstabe nicht schon in der Liste steht.
Das stimmt ja, aber das IF ist überflüssig ob es die Abfrage wirklich langsamer macht habe ich jetzt nicht getestet.
Struppi.
--
Javascript ist toll