MySQL-DISTINCT-won';当选定某些列时,将无法工作

MySQL-DISTINCT-won';当选定某些列时,将无法工作,mysql,sql,distinct,Mysql,Sql,Distinct,我在MySQL表上使用DISTINCT时出现了一个神秘的行为,我无法理解: SELECT DISTINCT `deal_hash`,`city_name` FROM `a` WHERE `city_name` = 'b' …将使用DISTINCT ondeal\U hash向我显示所需的输出。我还可以将任何其他列添加到select中,它只在两种情况下起作用,否则将失败 SELECT DISTINCT `deal_hash`,`deal_link` FROM `a` WHER

我在MySQL表上使用DISTINCT时出现了一个神秘的行为,我无法理解:

SELECT DISTINCT `deal_hash`,`city_name` 
  FROM `a` 
 WHERE `city_name` = 'b'
…将使用DISTINCT ondeal\U hash向我显示所需的输出。我还可以将任何其他列添加到select中,它只在两种情况下起作用,否则将失败

SELECT DISTINCT `deal_hash`,`deal_link` 
  FROM `a` 
 WHERE `city_name` = 'b'


deal\u link
是一个varchar(255)并在INT(20)处加载。

DISTINCT
显示DISTINCT行(列值)


PostgreSQL是我所知道的唯一一个支持DISTINCT ON的数据库,应用于特定列。

选择DISTINCT
选择DISTINCT
s
DISTINCT
行。它不特定于以下列

尝试改用:


distinct
适用于
select
列表中的所有列,而不仅仅是第一列。这是你困惑的根源吗?如果没有,请解释“DISTINCT将失败”的含义。
DISTINCT
显示不同的行。PostgreSQL是我所知道的唯一一个在上支持DISTINCT的数据库,应用于特定的列。感谢这正是问题所在,我不知道DISTINCT的完整行为,如果现在有人将此作为一个答案发布,我会接受:)@OMG-我更喜欢你的措辞,所以这将留给你!听起来你在找。。。
SELECT DISTINCT `deal_hash`,`loaded_at` 
  FROM `a` 
 WHERE `city_name` = 'b'
select deal_hash, min(deal_link)
from a
where city_name = 'b'
group by deal_hash
select deal_hash, max(loaded_at)
from a
where city_name = 'b'
group by deal_hash