2 Datensätze in MySQL tauschen?

jackie05

Erfahrenes Mitglied
Hallo,
ich habe folgendes Problem und zwar möchte ich in PHP 2 Datensätze in MySQL Tabelle tauschen, nur wie könnte ich das anstellen?

Ich hab das mal so versucht:
PHP:
UPDATE tabelle AS tabelle1 JOIN tabelle AS tabelle2 ON( tabelle1.id=2 AND tabelle2.id=4 ) SET tabelle1.sort = tabelle2.sort, tabelle2.sort = tabelle1.sort
Hier soll z.B. Datensatz (id 2) mit Datensatz (id 4) vertauscht werden, mit alle Spalten, leider klappt das nicht.

Ich danke euch schon mal für die Hilfe.

Gruss
 
Hi

a) warum gibt es überhaupt zwei Tabellen mit den selben Spaltenarten?
b) sind id und sort die einzigen Spalten?
c) Stichwort Dreieckstausch und (viel komplizierter aber nötig) Transaktionen
 
Vielen Dank für die antwort.

Sry, die spalte sort gibt es nicht, ich hab diesen Code bei google gefunden und hab das einfach mal versucht irgendwie bei mir umzuschreiben.
Ich möchte einfach 2 Datensätze miteinander vertauschen anhand der ids, nur wie könnte ich das mit SQL Befehl lösen?

Danke schon mal.

Gruss
 
Ich hab da leider nicht soviel ahnung und bei google finde ich auch keine konkrete ergebnisse.

Hier mal ein beispiel:
id: 1 title: Test desc=Test
id: 2 title: Test2 desc=Test2

und so sollen die Datensätze miteinander vertauscht werden:
id: 2 title: Test2 desc=Test2
id: 1 title: Test desc=Test

Ich weiß auch nicht, wie ich das mit Dreieckstausch und Transaktionen hinbekommen kann.

Könntest du mir Vielleicht ein beispiel posten?

Gruss
 
Danke erstmal.

Wenn du mir die Fragen auch noch beantworten könntest... (Doppeltabelle, Spaltennamen, ...)
Sorry, mein erster Post war quatsch, keine ahnung was ich da bewerkstelligen wollte.
Ich habe nur 1 Tabelle und möchte 2 Einträge darin miteinander vertauschen, nur weiß ich echt nicht wie ich das so kurz wie möglich lösen kann, ohne Geschwindigkeitsverlust.

z.B. möchte ich folgene Einträge miteinander vertauschen:
Eintrag mit der id 2 und Eintrag mit der id 4

Unter Java kenne ich den begriff Swap, um z.B. 2 Einträge im Array zu vertauschen und das versuche ich gerade mit SQL hinzubekommen, nur leider ohne erfolg.

Gruss
 
Hi,

was du suchst ist eine Sortierung, kein direkter Tausch.
Deinem einfachen Beispiel nach wäre das ein
SQL:
SELECT * FROM tabelle ORDER BY id DESC

Welche Reihenfolge du bei einem SELECT ohne ORDER BY erhältst ist Datenbank-spezifisch. Meines Wissens nach werden die Eintrge standardmässig nach PK sortiert ausgegeben, wobei ich mir da nicht 100% sicher bin.

Grüsse,
BK
 
Welche Reihenfolge du bei einem SELECT ohne ORDER BY erhältst ist Datenbank-spezifisch. Meines Wissens nach werden die Eintrge standardmässig nach PK sortiert ausgegeben, wobei ich mir da nicht 100% sicher bin.
Ist glaub wirklich DB-Spezifisch. Ich dachte, sie kommen unsortiert etwa in der Reihenfolge wie sie abgelegt wurden.
 
Zurück