MySQL查询GROUP BY WHERE IN

时间:2013-11-11 10:22:47

标签: mysql sql

我有一张表:

+------+--------+-----------+
|      | name   | type_id   |
+------+--------+-----------+
|    1 | Bob    | 3         |
|    2 | Tony   | 2         |
|    3 | Sheila | 2         |
|    4 | Sarah  | 8         |
|    5 | Tom    | 7         |
+------+--------+-----------+

我希望将我的type_id分组到一个名为'type'的新列中。 type_id 2和8的值为'yes',其他一切都为'no',所以我的结果看起来像是:

+------+--------+-----------+------+
|      | name   | type_id   | type |
+------+--------+-----------+------+
|    1 | Bob    | 3         | no   |
|    2 | Tony   | 2         | yes  |
|    3 | Sheila | 2         | yes  |
|    4 | Sarah  | 8         | yes  |
|    5 | Tom    | 7         | no   |
+------+--------+-----------+------+

这是否有可能,如果是这样的话,因为我在“GROUP BY”和“JOINS”上搜索了文档,但是看不到像这样的解决方案。

1 个答案:

答案 0 :(得分:6)

您可以使用case

执行此操作
SELECT *,CASE WHEN type_id IN (2,8) THEN 'yes' ELSE 'no' END as `type`
FROM yourTable

sqlfiddle demo