2017-11-22 4 views
-1

Ich habe folgende Tabelle Daten.Aktualisieren Sie meine vorhandene Spalte mit einzelnen MySQL-Abfrage

-------------- 
|ID | status | 
-------------- 
| 1 | 0 | 
| 2 | 1 | 
| 3 | 1 | 
| 4 | 0 |  
| 5 | 1 | 
| 6 | 0 | 
| 7 | 1 | 
| 8 | 1 | 
| 9 | 0 | 
-------------- 

Jetzt sind einige der technischen Grund möchte ich meine Tabelle Datensätze aktualisieren, bei denen 0-N und 1-Y so dass jeder eine Idee haben, wie kann ich mit in einzelnen Update-Abfrage tun.

erwartete Ergebnis:

-------------- 
|ID | status | 
-------------- 
| 1 | N | 
| 2 | Y | 
| 3 | Y | 
| 4 | N |  
| 5 | Y | 
| 6 | N | 
| 7 | Y | 
| 8 | Y | 
| 9 | N | 
-------------- 

Vielen Dank im fortgeschrittenen

+2

Geben Sie das erwartete Ergebnis als gut. – jarlh

Antwort

3

status Unter der Annahme, ist eine Zeichenfolge, würden Sie gerade tun:

update t 
    set status = (case when status = '0' then 'N' else 'Y' end) 
    where status in ('0', '1'); 

Wenn status numerisch ist, würden Sie zuerst ändern müssen sein Typ.

+0

Ich würde erwähnen, wo Status in ('0', '1'); 'ist optional, wenn nur diese 2 Status. –

1

U kann unter Abfrage verwenden, wenn Sie nur 0 und 1 im Statusfeld haben. und wenn der Datentyp des Statusfeldes INT ist, dann ändere es in varchar.

update `order` SET status = CASE WHEN status = 0 THEN 'N' ELSE 'Y' END 
1

Versuchen Sie es.

update 'tablename' set status= if(status=0,'N','Y') where status in('0','1'); 

Stellen Sie sicher, Ihre Feldtyp varchar für Status

Verwandte Themen