mysql返回某一行中不为0的列名

标签 mysql select

您好,我有一个如下所示的表格:

id | PS0101 | PS0102 | PS0103 |
1  |    1   |    0   |    2   |
2  |    3   |    0   |    0   |
3  |    0   |    0   |    0   |
4  |    0   |    1   |    0   |

使用 mysql,我尝试返回一个指定用户的大于 0 的列名。

这个示例 mysql 代码是严重错误的,但只是为了提供一个想法:

SELECT column HAVING column > 0 WHERE id = 1;

这将返回 PS0101 和 PS0103

谢谢!

最佳答案

我想如果我很好地理解你想要什么就可以了。

SELECT 
CASE WHEN PS0101>0 THEN 'PS0101' ELSE '' END AS column1, 
CASE WHEN PS0102>0 THEN 'PS0102' ELSE '' END AS column2,
CASE WHEN PS0103>0 THEN 'PS0103' ELSE '' END AS column3
FROM table_name
WHERE id = 1;

这是一个工作 fiddle

关于mysql返回某一行中不为0的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22274122/

相关文章:

sql-server - SELECT 注释及其回复 SQL Server

jquery - RoR - 如何在下拉列表中添加图标

PHP 与 mysql SELECT LIMIT

mysql - 我可以在 InnoDB 事务期间检索挂起的查询吗?

mysql - 创建特定月份内的付款 list 。数据库管理系统

c# - 如何从 PHP 向 C# 服务发送通知?

MySQL查询限制

php - 如何显示数据库中两个用户之间的相互关系?

php - 用户 'root' @localhost mysql 错误 1045 的访问被拒绝

sql - 如何从下表中检索最高和最低工资?