2016-06-05 10 views
1

Ich habe eine Spalte in meiner MySQL-Tabelle, die mit Komma getrennten IDs gefüllt ist. Ich möchte alle Zeilen aktualisieren, die ihre itemID in der CSV-Liste haben:Zeilen aktualisieren, wo in csv Feld mit MySQL

UPDATE items SET ... WHERE itemID IN(SELECT <csv items id> FROM list WHERE ...) 

Leider nur dies die erste itemID in der CSV-Liste beeinflussen.

Ich habe auch versucht diese:

SELECT @csv := <csv items id> FROM list WHERE ...; 
UPDATE items SET ... WHERE itemID IN(@csv); 

Und es ist das gleiche, nur der erste Wert in der CSV-Liste aktualisiert.

Hier sind einige Bilder zu illustrieren:

+0

zeigt einige Werte entsprechen der eigentlichen Daten – QuickPrototype

Antwort

1

ich die Verwendung von FIND_IN_SET vorschlagen (wenn das Ergebnis = dann teh ItemID in comma_delimited_string

UPDATE items 
    SET your_column = your_result 
WHERE FIND_IN_SET(ItemID, your_comma_delimited_string) != 0; 
+0

Weißt du auch warum bei meiner Abfrage nur das erste Vorkommen angezeigt wird und kein Fehler oder sowas geworfen wird? – Maarethyu

Verwandte Themen