LeetCodeブラシ問題(python)——627.給料を交換する

974 ワード

タイトルの説明:
salaryテーブルが与えられ、以下に示すように、m=男性とf=女性の値がある.すべてのf値とm値を交換します(たとえば、すべてのf値をmに変更したり、逆にしたりします).更新(Update)文が1つしか使用されず、中間のテンポラリ・テーブルがないことが要求されます.
ただし、Update文は1つしか書けません.Select文は作成しないでください.
例:
| id | name | sex | salary |
|----|------|-----|--------|
| 1  | A    | m   | 2500   |
| 2  | B    | f   | 1500   |
| 3  | C    | m   | 5500   |
| 4  | D    | f   | 500    |

作成した更新文を実行すると、次の表が表示されます.
| id | name | sex | salary |
|----|------|-----|--------|
| 1  | A    | f   | 2500   |
| 2  | B    | m   | 1500   |
| 3  | C    | f   | 5500   |
| 4  | D    | m   | 500    |

問題解決の考え方:
mysqlのIF式IF(expr1,expr2,expr3)
EXpr 1がTRUE(expr 1<>0 and expr 1<>NULL)である場合、IF()の戻り値はexpr 2である.そうでない場合、戻り値はexpr 3になります.IF()の戻り値は、文脈に応じて数値または文字列の値です.
コード実装:
# Write your MySQL query statement below
UPDATE salary SET sex=if(sex='f','m','f')