作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个像这样的表:
+------+--------+-----------+
| | 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”的文档,但看不到这样的解决方案。
最佳答案
您可以使用 case 来做到这一点:
SELECT *,CASE WHEN type_id IN (2,8) THEN 'yes' ELSE 'no' END as `type`
FROM yourTable
关于MySQL 查询 GROUP BY WHERE IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19903940/
我是一名优秀的程序员,十分优秀!