Bulk update, mysql where-Anweisung
How to update von mysql-Daten in der Masse ?
Wie definiert man so etwas wie dieses :
UPDATE `table`
WHERE `column1` = somevalues
SET `column2` = othervalues
mit somevalues wie :
VALUES
('160009'),
('160010'),
('160011');
und othervalues :
VALUES
('val1'),
('val2'),
('val3');
vielleicht ist es unmöglich mit mysql ?
ein php-Skript ?
- Setzen Sie Ihre Paare in einer lookup-Tabelle und der join-durch das erstellen von Ihre update.
- haben Sie überprüft diese Antwort stackoverflow.com/questions/12960569/mysql-bulk-insert-via-php
- es kann getan werden, indem MySQL, ohne Einbeziehung von PHP. Überprüfen Sie heraus unten meine Antwort, es funktioniert wie ein Charme.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die einfachste Lösung in deinem Fall ist die Verwendung
ON DUPLICATE KEY UPDATE
Bau. Es funktioniert wirklich schnell, und macht den job sehr einfach.oder verwenden
CASE
Baufruit
ist nicht einzigartig? Ich bin verwirrt durch die Anweisung in die mysql-docs: "Wenn Sie geben Sie eine ON DUPLICATE KEY UPDATE-Klausel und eine Zeile eingefügt werden würde, verursachen einen doppelten Wert in einem EINDEUTIGEN index oder PRIMARY KEY, ein UPDATE von der alten Zeile Auftritt" in dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html.Wenn die "bulk" - Daten, die Sie haben, ist dynamisch und kommt aus PHP (du hast es mit einem tag versehen, nachdem alle), dann die Abfrage würde wie folgt Aussehen:
PHP zu generieren, diese aus einem bestehenden array (vorausgesetzt das array ist in einem format, wie:
) würde wie folgt Aussehen (keineswegs die beste (nicht die Adresse der Flucht oder Desinfektion der Werte, zum Beispiel), nur ein kurzes Beispiel):
foo
(id, bar, Datum) VALUES (1, 'Ananas', d1), (2, 'asiatische Birne', d2), (5, 'Pfirsich', d3) ON DUPLICATE KEY UPDATE bar = WERTE(bar), Datum=Werte(Datum);Wenn Sie Daten im array-format, dann versuchen Sie, diese
und die Abfrage wie
"UPDATE table WHERE column1 = ? SET column2 = ?"
dann legen Sie es wie unten
hoffe, es wird funktionieren.
Verweis aus diese.
Können Sie implodieren zu bulk update, mysql where-Anweisung
$ids ist ein array