Mailinglisten-Archive |
Peter Linzenkirchner schrieb:
> Hallo,
>
> ich muss in einer mysql-Tabelle in zwei Datensätzen den inhalt eines
> Felder tauschen (also inhalt von datensatz 1 in 2 und von 2 in 1). Mit
> zwei SELECT und zwei UPDATE Anweisungen geht das natürlich, aber das
> sind vier Datenbankqueries für einen Vorgang. Ginge es auch einfacher?
> Im mysql-Manual bin ich nicht fündig geworden.
entweder über eine zweite Tabelle oder weiteres leeres Feld in der
selben Tabelle, dann bekommst du es in einem Query:
UPDATE [table]
SET [temp_field] = [field1],
[field1] = [field2],
[field2] = [temp_field]
WHERE ...
oder
UPDATE [table], [temp_table]
SET [temp_table].[temp_field] = [table].[field1],
[table].[field1] = [table].[field2],
[table].[field2] = [temp_table].[temp_field]
WHERE ...
eventuell ginge auch ein
UPDATE [table], [table] AS table_copy
SET [table].[field1] = [table_copy].[field2],
[table].[field2] = [table_copy].[field1]
WHERE [table].[field1] = [table_copy].[field1]
AND [table].[field2] = [table_copy].[field2]
...
... da weiß ich aber nicht wie sich da MySQL verhält, habs noch nicht
probiert ....
--
Sebastian Mendel (www.sebastianmendel.de)
*www.warzonez.de* | www.tekkno4u.de | www.nofetish.com
php::bar PHP Wiki - Listenarchive