phpbar.de logo

Mailinglisten-Archive

[php] OT, mysql-Frage

[php] OT, mysql-Frage

Sebastian Mendel lists at sebastianmendel.de
Don Mai 6 10:27:39 CEST 2004


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