繁体   English   中英

显示单行的特定MySQL表字段

[英]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

您可以在下面的链接上看到一个使用几个堆栈溢出标志的示例:

http://sqlfiddle.com/#!9/189061/1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM