可以在一个Select Query中使用“Distinct”键字两次吗?

时间:2010-04-30 10:59:31

标签: mysql distinct

可以在一个Select Query中使用“Distinct”键字两次吗?像智者一样:

select DISTINCT(trackid), DISTINCT(table_name) 
from jos_audittrail 
where live = 0 AND operation = UPDATE

由于

4 个答案:

答案 0 :(得分:4)

否,默认情况下,Distinct适用于您选择的所有列。 例如。

select DISTINCT trackid, table_name 
from jos_audittrail 
where live = 0 AND operation = UPDATE

这将选择所有不同的trackid和表名组合

编辑

要检索除此之外的其他记录,您可以使用davek给出的答案。它会起作用。

您可以使用group by执行此项工作,因为group by正应用于所提供的两个列,因此不需要聚合函数。

    SELECT trackid, table_name FROM jos_audittrail 
    WHERE live = 0 AND operation = 'UPDATE' 
    GROUP BY trackid, tablename

答案 1 :(得分:2)

select trackid
, table_name
, count(*)
from jos_audittrail 
where live = 0 AND operation = UPDATE
group by trackid, table_name
order by trackid, table_name

会给你两者的不同组合。

答案 2 :(得分:2)

不,你无法使用它,它会引发错误,但还有其他选择,你可以想到得到你想要的结果

答案 3 :(得分:0)

找到这个的最简单方法就是运行查询。我刚试过,但没用。

但是,您可以在GROUP BY中使用两列 - 只需执行此操作:

select trackid, table_name from jos_audittrail where live = 0 and operation = 'UPDATE' group by trackid, tablename