簡體   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