MySQL查询GROUP BY WHERE IN

Kik*_*ksy 2 mysql sql

我有一张桌子:

+------+--------+-----------+
|      | name   | type_id   |
+------+--------+-----------+
|    1 | Bob    | 3         |
|    2 | Tony   | 2         |
|    3 | Sheila | 2         |
|    4 | Sarah  | 8         |
|    5 | Tom    | 7         |
+------+--------+-----------+
Run Code Online (Sandbox Code Playgroud)

我想将我的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   |
+------+--------+-----------+------+
Run Code Online (Sandbox Code Playgroud)

这甚至是可能的,如果是这样的话,因为我在'GROUP BY'和'JOINS'上搜索了文档,但却看不到像这样的解决方案.

Fil*_*lva 6

你可以用一个案例做到这一点:

SELECT *,CASE WHEN type_id IN (2,8) THEN 'yes' ELSE 'no' END as `type`
FROM yourTable
Run Code Online (Sandbox Code Playgroud)

sqlfiddle demo