Select und Update in ein MySQL-Ausdruck
Klaus sieht schwarz
- datenbank
0 Vinzenz0 flashnfantasy0 Klaus
Hallo Jungs und Mädels
ich suche vergeblich auf mysql.de nach einer Möglichkeit, wie ich eine Select Anweisung mit einer Update-Anweisung kombinieren kann
Ich möchte alle Zeilen in einer Spalte abrufen und sie in einer anderen Spalte/Zeile eintragen
wie kann man den Update und Select kombinieren?
ich hab gestern irgendwo gelesen, dass so eien Abfrage nur mit MySQL 5 funktioniert, ich müsste das aber irgendwie unter MySQL 4 hinbekommen
danke
Hallo Klaus,
Ich möchte alle Zeilen in einer Spalte abrufen und sie in einer anderen Spalte/Zeile eintragen
Bitte erkläre das genauer.
Möchtest Du alle Werte aus Spalte X in Spalte U eintragen?
Dazu benötigst Du noch nicht einmal Subqueries.
UPDATE Deine_Tabelle SET U = X
Oder etwas anderes?
wie kann man den Update und Select kombinieren?
ich hab gestern irgendwo gelesen, dass so eien Abfrage nur mit MySQL 5 funktioniert, ich müsste das aber irgendwie unter MySQL 4 hinbekommen
Ab 4.1 werden Subqueries unterstützt, siehe http://dev.mysql.com/doc/mysql/en/subqueries.html
Beachte bitte die Einschränkung im letzten Absatz:
<zitat>
One restriction is that currently you cannot modify a table and select from the same table in a subquery. This applies to statements such as DELETE, INSERT, REPLACE, and UPDATE.
</zitat>
Freundliche Grüsse,
Vinzenz
Hallo Vinzenz :-)
Ich möchte alle Zeilen in einer Spalte abrufen und sie in einer anderen Spalte/Zeile eintragen
Bitte erkläre das genauer.
Möchtest Du alle Werte aus Spalte X in Spalte U eintragen?
Dazu benötigst Du noch nicht einmal Subqueries.
UPDATE Deine_Tabelle SET U = X
ich möchte aus 2 Spalten von einer anderen Tabelle den Wert Abfrage un in den Datensatz mit der selben ID eintragen
wie kann man den Update und Select kombinieren?
ich hab gestern irgendwo gelesen, dass so eien Abfrage nur mit MySQL 5 funktioniert, ich müsste das aber irgendwie unter MySQL 4 hinbekommen
Ab 4.1 werden Subqueries unterstützt, siehe http://dev.mysql.com/doc/mysql/en/subqueries.html
Beachte bitte die Einschränkung im letzten Absatz:
<zitat>
One restriction is that currently you cannot modify a table and select from the same table in a subquery. This applies to statements such as DELETE, INSERT, REPLACE, and UPDATE.
</zitat>
das heisst also... dass sich das erledigt hat udn mir nur eien Programmiersprache wie PHP übrigbleibt :-/
Hallo Klaus,
ich möchte aus 2 Spalten von einer anderen Tabelle den Wert Abfrage un in den Datensatz mit der selben ID eintragen
Szenario
Aus Tabelle A:
id sp1 sp2 ...
in Tabelle B:
id sp1 sp2 ... [weitere Spalten]
Ab 4.1 werden Subqueries unterstützt, siehe http://dev.mysql.com/doc/mysql/en/subqueries.html
Beachte bitte die Einschränkung im letzten Absatz:
<zitat>
One restriction is that currently you cannot modify a table and select from the same table in a subquery. This applies to statements such as DELETE, INSERT, REPLACE, and UPDATE.
das heisst also... dass sich das erledigt hat udn mir nur eien Programmiersprache wie PHP übrigbleibt :-/
Die Subquery bezieht sich doch nicht auf die Tabelle,
in die Du einfügen willst.
Somit sollte es gehen, sofern
Deine MySQL-Version mindestens 4.1 ist.
Freundliche Grüsse,
Vinzenz
Hallo,
ich möchte aus 2 Spalten von einer anderen Tabelle den Wert Abfrage un in den Datensatz mit der selben ID eintragen
Szenario
Aus Tabelle A:
id sp1 sp2 ...
in Tabelle B:
id sp1 sp2 ... [weitere Spalten]
in Tabelle B soll nachher alles in einer Tabelel stehen
Ab 4.1 werden Subqueries unterstützt, siehe http://dev.mysql.com/doc/mysql/en/subqueries.html
Beachte bitte die Einschränkung im letzten Absatz:
<zitat>
One restriction is that currently you cannot modify a table and select from the same table in a subquery. This applies to statements such as DELETE, INSERT, REPLACE, and UPDATE.
das heisst also... dass sich das erledigt hat udn mir nur eien Programmiersprache wie PHP übrigbleibt :-/
Die Subquery bezieht sich doch nicht auf die Tabelle,
in die Du einfügen willst.
Somit sollte es gehen, sofern
Deine MySQL-Version mindestens 4.1 ist.
ich habe _nur_ MySQL 4 zur Verfügung
mfg
Twilo
Hallo Klaus,
ich möchte aus 2 Spalten von einer anderen Tabelle den Wert Abfrage un in den Datensatz mit der selben ID eintragen
Szenario
Aus Tabelle A:
id sp1 sp2 ...in Tabelle B:
id sp1 sp2 ... [weitere Spalten]in Tabelle B soll nachher alles in einer Tabelel stehen
In einer Spalte? Verwende die Funktion CONCAT, siehe
http://dev.mysql.com/doc/mysql/en/string-functions.html.
ich habe _nur_ MySQL 4 zur Verfügung
4.0.4 benötigst Du, denn Subqueries sind nicht erforderlich.
Du musst nur ein Multiple-Table-Update durchführen mit einem
INNER JOIN auf ID.
Freundliche Grüsse,
Vinzenz
Hallo Klaus alias Twilo,
war das Doppelposting zu https://forum.selfhtml.org/?t=101006&m=619579 wirklich nötig? Und lies bitte wahsagas Posting https://forum.selfhtml.org/?t=101006&m=619928, volle drei Minuten vor meinem abgefasst, mit dem gleichen Tenor.
In diesem Thread lässt Du Dir von mir mühsam die Informationen aus der Nase ziehen, die im anderen drinstehen. Das wäre wirklich nicht nötig gewesen :-(
Immer noch freundliche Grüße,
Vinzenz
Moin
war das Doppelposting zu https://forum.selfhtml.org/?t=101006&m=619579 wirklich nötig? Und lies bitte wahsagas Posting https://forum.selfhtml.org/?t=101006&m=619928, volle drei Minuten vor meinem abgefasst, mit dem gleichen Tenor.
In diesem Thread lässt Du Dir von mir mühsam die Informationen aus der Nase ziehen, die im anderen drinstehen. Das wäre wirklich nicht nötig gewesen :-(
ich bin nicht Twilo
ich wollte etwas von Twilo einfügen, hatte es dann aber rausgelöscht, anscheint zu wenig :-/
ich hatte gesehen, dass er ein ähnliches Problem hat
Hallo Klaus,
ich bin nicht Twilo
Dann entschuldige bitte meinen Vorwurf des Doppelpostings.
ich wollte etwas von Twilo einfügen, hatte es dann aber rausgelöscht, anscheint zu wenig :-/
ich hatte gesehen, dass er ein ähnliches Problem hat
Er will, soweit ich das erkennen kann, das gleiche.
Was hast Du mit CONCAT() erreicht?
Freundliche Grüsse,
Vinzenz
Hallo Vinzenz
ich bin nicht Twilo
Dann entschuldige bitte meinen Vorwurf des Doppelpostings.
keine Problem :)
ich wollte etwas von Twilo einfügen, hatte es dann aber rausgelöscht, anscheint zu wenig :-/
ich hatte gesehen, dass er ein ähnliches Problem hat
Er will, soweit ich das erkennen kann, das gleiche.
Was hast Du mit CONCAT() erreicht?
ich habe damit den Vor- und Nachnamen verbunden, im Format "Vorname Nachname" nur ist das Problem, ich bekomm zwar, wie beim Select normal ist, nur die Ausgabe, müsste das jetzt aber noch in die eine Spalte einfügen können (die Spalte ist in einer anderen Tabelle)
da happert es zur Zeit noch etwas dran
Klaus
Was hast Du mit CONCAT() erreicht?
ich habe damit den Vor- und Nachnamen verbunden, im Format "Vorname Nachname" nur ist das Problem, ich bekomm zwar, wie beim Select normal ist, nur die Ausgabe, müsste das jetzt aber noch in die eine Spalte einfügen können (die Spalte ist in einer anderen Tabelle)
da happert es zur Zeit noch etwas dran
UPDATE tabelle1, tabelle2
SET tabelle1.spalte = CONCAT_WS(' ', tabelle2.spalte1, tabelle2.spalte2)
WHERE tabelle1.id = tabelle2.id
In das UPDATE werden die Tabellen tabelle1 und tabelle2 einbezogen. Geändert wird aber nur tabelle1.spalte1 (im SET-Teil). Durch das WHERE werden die gleich-id-igen Zeilen der beiden Tabellen einander zugeordnet.
Guten Abend dedlfix
Was hast Du mit CONCAT() erreicht?
ich habe damit den Vor- und Nachnamen verbunden, im Format "Vorname Nachname" nur ist das Problem, ich bekomm zwar, wie beim Select normal ist, nur die Ausgabe, müsste das jetzt aber noch in die eine Spalte einfügen können (die Spalte ist in einer anderen Tabelle)
da happert es zur Zeit noch etwas dran
UPDATE tabelle1, tabelle2
SET tabelle1.spalte = CONCAT_WS(' ', tabelle2.spalte1, tabelle2.spalte2)
WHERE tabelle1.id = tabelle2.idIn das UPDATE werden die Tabellen tabelle1 und tabelle2 einbezogen. Geändert wird aber nur tabelle1.spalte1 (im SET-Teil). Durch das WHERE werden die gleich-id-igen Zeilen der beiden Tabellen einander zugeordnet.
das funktioniert super, prima
ich hab das bis jetzt noch nirgends gelesen, dass man das so machen kann
danke, super Sache :-)
ich hab das bis jetzt noch nirgends gelesen, dass man das so machen kann
Steht alles im Handbuch unter UPDATE Syntax (Multiple-table syntax)
http://dev.mysql.com/doc/mysql/de/replace.html
das Replace wirkt ähnliche wie ein Update,
kleine Probleme, du musst alle Zeilen neu belegen, also nicht nur die, die du veränderst.
Falls du ein Update auf sehr viele Zeilen gleichzeitig machen willst - dann gibt es wirklich nur die Möglichkeit mit einer temporary table...
Das sind etwa 3 weitere SQL-Statements.
Moin
http://dev.mysql.com/doc/mysql/de/replace.html
das Replace wirkt ähnliche wie ein Update,
kleine Probleme, du musst alle Zeilen neu belegen, also nicht nur die, die du veränderst.
Falls du ein Update auf sehr viele Zeilen gleichzeitig machen willst - dann gibt es wirklich nur die Möglichkeit mit einer temporary table...
Das sind etwa 3 weitere SQL-Statements.
ich möchte alle Zeilen abändern
ok, ich dachte, dass man das alles in einer Abfrage stopfen kann :)