繁体   English   中英

选择不同的行

[英]selecting distinct rows

我正在尝试选择不同的但它不起作用

SELECT  Distinct `table1`.`myID` AS `myID`,  
                 `table1`.`TypeID` AS `TypeID`,  

有什么我想念的吗?

Distinct不适用于单个字段,而适用于整行。 您的结果仅包含不同的行,即,仅删除所有字段都相同的行。

如果您想为特定字段提供不同的值,则可以使用group by

select table1.myID, min(table1.TypeID) as TypeId
from ...
group by table1.myID

这将为您提供一个具有不同myID值的结果,但是对于未分组的字段,应指定要获取的值。 为此,您使用诸如minmax聚合。 MySQL可能允许您指定没有聚合的字段,但是它只会选择出现的第一个值(这可能根本不是您认为的第一个值)。

一种执行您想要的操作的方法是:

SELECT  Distinct 'myID' as IDType, `table1`.`myID` AS ID
UNION
SELECT DISTINCT 'TypeID' as IDType, `table1`.`TypeID` AS `ID`

这将为您提供每一列的唯一值,如下所示:

myID    1
myID    2
myID    3
TypeID  101
TypeID  201
TypeID  301

您将不知道哪些值会一起使用,但是您将知道哪些值显示在每一列中。

您不能在列上仅使用行。

您可以通过使用子查询来完成您要尝试的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM