Kombinieren von INSERT und SELECT mit geänderten Spaltenwerten
Dieses Beispiel zeigt, wie Sie mithilfe einer courses
-Anweisung Daten in die Tabelle SELECT
einfügen und gleichzeitig der Spalte gid
einen bestimmten Wert zuweisen, unabhängig vom aus der Quelltabelle abgerufenen Wert.
Die ursprüngliche Abfrage versucht, Daten aus der courses
Tabelle:
<code class="language-sql">INSERT INTO courses (name, location, gid) SELECT name, location, gid FROM courses WHERE cid = $cid</code>
Die Frage ist, ob wir den gid
-Wert während des Einfügevorgangs ändern können.
Lösung
Ja, das ist erreichbar. Der Schlüssel besteht darin, die Spalte gid
in der Anweisung SELECT
durch einen konstanten Wert oder einen anderen Ausdruck zu ersetzen. Die folgende Abfrage veranschaulicht dies:
<code class="language-sql">INSERT INTO courses (name, location, gid) SELECT name, location, 1 -- '1' is the new gid value FROM courses WHERE cid = 2 -- Example condition; replace '2' with your desired cid</code>
In dieser modifizierten Abfrage erhält die Spalte gid
in der Anweisung INSERT
immer den Wert 1
, unabhängig vom Wert gid
in der ausgewählten Zeile aus der Tabelle courses
. Sie können 1
durch jede geeignete Konstante oder jeden geeigneten Ausdruck ersetzen, der einen Wert ergibt, der mit dem Datentyp der Spalte gid
kompatibel ist. Die WHERE
-Klausel filtert die Quelldaten und stellt sicher, dass nur die relevante Zeile zum Einfügen verwendet wird.
Das obige ist der detaillierte Inhalt vonKann ich mit SELECT INSERT in eine Tabelle einfügen und einer Spalte einen anderen Wert zuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!