Update mehrere Spalten einer Tabelle bedingt in einem einzigen Befehl

Ich habe eine Tabelle, die Spalten enthält name, client_name und requester_name. Ich brauche zu aktualisieren, die Werte dieser Spalten von "Mic" zu "Michael".

Hier sind einige Datensätze, die aktualisiert werden sollten:

name  | client_name |  requester_name
------+-------------+----------------
Mic   | Jerry       | Jack
Jack  | Mic         | Mic
Jerry | Jack        | Mic

Ich habe versucht, die folgende Abfrage:

UPDATE names
SET name='Michael', client_name='Michael', requester_name='Michael'
WHERE name='Mic' OR client_name='Mic' OR requester_name='Mic';

Diese Abfrage stellt alle Spalten ändern, alle Namen zu "Michael".

Was sollte die Abfrage Aussehen, um nur die änderungen gelten, wo anwendbar?

  • Natürlich tut Sie das, weil Sie alle Spalten in der SET - Klausel.
  • Gibt es einen Grund hat es zu sein, eine einzelne Anweisung anstelle von 3 (1 für jede Spalte)?
  • Ja, es sind mehrere Tabellen mit gleich situation, in denen Werte geändert werden sollen, auf die bestimmte Bedingung. Und ich wurde nicht gefragt zu generieren, die eine Menge von kurzen Abfragen 🙁
  • sind Sie auf der Suche nach den Wert-Buchse Mic Mic geändert werden, um Jack Michael, oder einfach nur Michael?
InformationsquelleAutor Dragon | 2012-06-27
Schreibe einen Kommentar