Angenommen, ich habe eine Auswahl
SELECT DISTINCT id, customer_id, domain FROM config WHERE type = 'foo';
Dies gibt einige Datensätze zurück.
Wie kann ich eine Einfügung für die Erreichbarkeitszeile in der Ergebnismenge wie machen
INSERT INTO config (id, customer_id, domain) VALUES (@id, @customer_id, 'www.example.com');
Wo @id
und @customer_id
sind die Felder der Zeile in der Ergebnismenge?
edit: Ich wollte es nicht nur duplizieren, sondern domain
stattdessen einen neuen Wert in das Feld einfügen . Trotzdem eine Facepalm-Situation, da es ganz einfach ist ;-) Danke!
Antworten:
So einfach ist das:
Wenn Sie "
www.example.com
" als Domain möchten , können Sie Folgendes tun:quelle
domain
Einstellung 'www.example.com' ein, sondern dupliziert einfach alle Einträge.quelle
Die MySQL-Dokumentation für diese Syntax finden Sie hier:
http://dev.mysql.com/doc/refman/5.1/en/insert-select.html
quelle
BEARBEITEN - Nach dem Lesen des Kommentars zu @ Krteks Antwort.
Ich denke, Sie bitten um ein Update anstatt einzufügen -
Dadurch werden alle vorhandenen Datensätze in der Konfigurationstabelle mit der Domäne "www.example.com" aktualisiert, ohne dass doppelte Einträge erstellt werden.
ALTE ANTWORT -
Sie können so etwas wie -
Hinweis: - Dies funktioniert nicht, wenn Sie eine ID als Primärschlüssel haben
quelle
Führen Sie diese SQL-Anweisung aus:
Sie möchten verschiedene Zeilen aus "config" auswählen und dieselben Zeilen in dieselbe Tabelle einfügen. Sie sind schon da drin. Nichts zu tun.
Es sei denn, Sie möchten tatsächlich nur einige oder alle Werte in der Spalte "Domäne" aktualisieren. Das würde eine UPDATE-Anweisung erfordern, die wirklich etwas bewirkt hat.
quelle