显示单行的特定MySQL表字段

时间:2015-03-13 15:00:50

标签: mysql

我有一个包含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的字段。

有可能吗?
如果可能的话,我该怎么做?

2 个答案:

答案 0 :(得分:0)

不幸的是,我不认为这是可能的。 如果您在阅读结果集时考虑它,您将拥有它 举例来说:

$row[0]

根据您尝试做的事情,行与行之间会有所不同。 $row[0]的结果将始终为1,但选中的列 因行而异,这对IMO来说非常困惑。

解决方案是更改表的设计并设置:

visibleField1, visibleField2, visibleField3, visibleField4, visibleField5

并在列中填写您要显示的字段的名称。

或为字段visibleFields命名,并在显示这三个字段时填入"field1,field2,field5"

可能还有其他方法可以改变这种设计。

答案 1 :(得分:0)

你可以这样试试:

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