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