2017-03-23 2 views
1

Ich habe eine Tabelle mit dem Namen "Benutzer" die Attribute in ihm sind "ID", "Name", "Geschlecht". Angenommen, ich möchte alle ersetzen ersetzen Sie alle Werte M mit F und alle F mit M innerhalb des Gender-Attributs. Was sql sollte ich in mysql schreiben, um es zu tun?ersetzen Sie einige Einträge simultan in mysql

Antwort

2

Sie können eine einfache UPDATE Anweisung verwenden, die die gender Spalte wechselt:

UPDATE users 
SET gender = IF(gender='M','F','M'); 
+0

Vielen Dank @Hunter McMilen .. Können Sie bitte beschreiben, wie es funktioniert. oder posten Sie einen Link oder eine Referenz von wo ich lernen kann, wie dies geschieht. –

+0

Die Abfrage untersucht jede Zeile in der Tabelle "Benutzer" und betrachtet die Spalte "Geschlecht". Wenn die Spalte "Geschlecht" gleich "M" ist, wird sie auf "F" gesetzt, andernfalls wird sie auf "M" gesetzt. –

+0

Ich habe es verstanden .. danke :) –

0

zweimal den gleichen Wert um Swapping zu vermeiden und mehr Flexibilität hinzuzufügen, ich dies in drei Abfragen aufgeteilt würde.

UPDATE users SET gender='X' WHERE gender='M'; 
UPDATE users SET gender='M' WHERE gender='F'; 
UPDATE users SET gender='F' WHERE gender='X'; 
+1

Sie werden nicht den gleichen Wert zweimal umschalten, weil jede Zeile nur einmal untersucht wird –

+0

Natürlich gilt das für das obige Beispiel. Für diesen Benutzerfall ist Ihre Lösung besser. :) –

+0

danke :) .. das ist eine einfache und effektive Möglichkeit. –

Verwandte Themen