我試圖編寫一個查詢來獲取單行中具有值等於TRUE的幾個列的記錄。我認爲這很容易,但它變成了。MySQL - 如何從具有多個列的表格中獲得一行真或假
擁有一個像這樣的表:
ITEMS COL1 COL2 COL3 COL4 COL5 COL6
----------------------------------------------------
ITEM1 TRUE FALSE FALSE FALSE FALSE FALSE
ITEM1 FALSE FALSE TRUE FALSE FALSE FALSE
ITEM1 FALSE FALSE FALSE FALSE FALSE FALSE
ITEM1 FALSE FALSE FALSE FALSE FALSE TRUE
ITEM2 FALSE TRUE FALSE FALSE FALSE FALSE
ITEM2 TRUE FALSE FALSE FALSE FALSE FALSE
ITEM2 FALSE FALSE FALSE TRUE FALSE FALSE
我需要這樣的:
ITEMS COL1 COL2 COL3 COL4 COL5 COL6
----------------------------------------------------
ITEM1 TRUE FALSE TRUE FALSE FALSE TRUE
ITEM2 TRUE TRUE FALSE TRUE FALSE FALSE
我想在一個表中使用distinct
和group
用,像這樣:
Select distinct ITEMS, COL1,COL2,COL3,COL4,COL5,COL6
FROM TABLE
WHERE (COL10=’TRUE’ or COL2=’TRUE’ or COL3=’TRUE’ or COL4=’TRUE’ or COL5=’TRUE’ or COL6=’TRUE’)
GROUP BY ITEMS
但它並沒有工作,我也試圖加入到同一個表,但結果相同,它在TRUE列中顯示FALSE。
那麼,有人可以提供一個關於如何獲得所需結果的提示嗎? 在此先感謝。
什麼是你希望得到,記錄,其中至少1列是'真'? –
如果按ITEMS分組,則如果ITEMS值相同,則最後一行將覆蓋之前的任何記錄。嘗試刪除「GROUP BY ITEMS」 – SIDU
謝謝,但是如果我刪除了GROUP BY ITEMS,那麼我將爲同一項目獲取多行,並且我需要爲每個ITEM使用一行,TRUE值爲 –