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