標籤:mysql select
文法說明:
方式一:
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
方式二:
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
使用樣本:
mysql> select id,name, (gender) as ‘性別‘ from t_user;
+----+------------+------+
| id | name | 性別 |
+----+------------+------+
| 19 | 張三 | 1 |
| 20 | 小紅 | 2 |
| 21 | 超級管理員 | |
+----+------------+------+
3 rows in set (0.00 sec)
mysql> select id,name, (CASE gender WHEN 1 THEN ‘男‘ WHEN 2 THEN ‘女‘ ELSE ‘其他‘ END) as ‘性別‘ from t_user;
+----+------------+------+
| id | name | 性別 |
+----+------------+------+
| 19 | 張三 | 男 |
| 20 | 小紅 | 女 |
| 21 | 超級管理員 | 其他 |
+----+------------+------+
3 rows in set (0.00 sec)
mysql> select id,name, (CASE WHEN gender=1 THEN ‘男‘ WHEN gender=2 THEN ‘女‘ ELSE ‘其他‘ END) as ‘性別‘ from t_user;
+----+------------+------+
| id | name | 性別 |
+----+------------+------+
| 19 | 張三 | 男 |
| 20 | 小紅 | 女 |
| 21 | 超級管理員 | 其他 |
+----+------------+------+
3 rows in set (0.00 sec)
應用常景:
Eg:在論壇中,不同類型的貼子的type不一樣,置頂貼是一直置頂的,而精華貼和普通貼在排序上是一樣的,此時就能使用mysql的Case,使在排序時精華貼和普通貼的type是一樣的。