MySQL SELECT DISTINCT 的行为不符合预期

标签 mysql select distinct

好吧,这真的让我很困惑。

此查询返回预期结果,尽管有重复的 car_id 数字

SELECT car_id FROM `Updates` ORDER BY `updates`.`created` DESC

这 2 个查询返回同一组结果:

SELECT distinct `Updates`.`car_id` FROM `Updates` ORDER BY `updates`.`created` DESC

SELECT car_id FROM `Updates` GROUP BY car_id ORDER BY `updates`.`created` DESC

请参阅下文了解它们有何不同: See below though as to how they differ:

最佳答案

我认为这与您的问题并不严格相关,但是:

SELECT DISTINCT car_id 
FROM Updates 
ORDER BY created DESC

不是有效的标准 SQL 语法。可能有许多行具有相同的 car_id 和不同的 created 值。应该使用哪一个来订购?

也许您想重写查询以便它返回有意义的结果:

SELECT car_id 
FROM Updates
GROUP BY car_id 
ORDER BY MAX(created) DESC              --- or MIN(created)
                                        -- whatever suits you

关于MySQL SELECT DISTINCT 的行为不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153102/

相关文章:

mysql - 如何在选择过程中为 NULL 单元格赋值

jQuery mobile多选菜单显示项?

mysql - 从多个表名中选择 *

MySQL统计结果集中列值的变化

mysql - sql CHECK 约束无法正常工作

php - 很少有表单值无法通过 $_POST 获取

mysql - 购物车数据库结构

MySQL 从第一个表中选择所有内容,并使用第二个表过滤器的特定 where 子句连接第二个表中的匹配数据

sql - 计算 Hive 中的列数

MySql查询: what's the better way to get the number of unique pairs in a set?