我试图编写一个查询来获取单行中具有值等于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值为 –