[英]Showing particular MySQL table fields for a single row
我有一个带有8个字段/列的MySQL表。 其中,5列的值为0或1。 我只想显示特定ro的值为1的那些字段。
显而易见的方法是运行如下查询:
SELECT * FROM table WHERE field1=1 OR field2=1 OR field3=1 OR field4=1 OR field5=1 ;
这将产生一个包含8个字段/列的条件满足的结果集。
但是我想尝试的是运行一个查询,该查询给出一个仅包含值为1的字段的结果集。
可能吗?
如果可能,我该怎么做?
不幸的是,我认为这是不可能的。 如果您在阅读结果集时考虑到此问题,则必须执行以下操作:
$row[0]
根据您要执行的操作,行与行之间会有所不同。 $row[0]
的结果将始终为1,但是所选的列在行与行之间将有所不同,这使IMO相当混乱。
一种解决方案是更改表的设计并设置:
visibleField1, visibleField2, visibleField3, visibleField4, visibleField5
并在列中填入您要显示的字段名称。
或将字段命名为visibleFields
并在要显示这三个字段时用"field1,field2,field5"
填充
可能还有其他方法可以进行此设计更改。
您可以这样尝试:
SELECT id,
CASE
WHEN field1 = 1 THEN 'badge_name'
WHEN field2 = 1 THEN 'other_badge_name'
...
END AS badge
FROM your_table
您可以在下面的链接上看到一个使用几个堆栈溢出标志的示例:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.