0

我们有两个 mysql sql RDS 服务器,我们面临一个我无法解决的问题。我们使用的查询是从数据集中简单地选择最大日期行。这在第一台服务器上工作正常,因为即使在同一数据集上,这在另一台服务器上也无法正常工作。

我们使用的查询如下:

SELECT `name`,last_update_date FROM 
(SELECT * FROM `table1` ORDER BY last_update_date DESC) X  GROUP BY `name`;

我不确定为什么会这样。我检查了两台服务器上的全局变量,发现新服务器中不存在以下变量:

binlogging_impossible_mode
innodb_additional_mem_pool_size
innodb_mirrored_log_groups
innodb_use_sys_malloc
simplified_binlog_gtid_recovery
sql_log_bin
storage_engine
thread_concurrency
timed_mutexes

任何帮助表示赞赏。

4

1 回答 1

4

这不是获取每个名称的最大日期的正确方法,并且没有理由期望从中获得一致的结果。正确的方法是:

select name, MAX(last_update_date) as last_update_date
FROM table1
GROUP BY name

它似乎在一台服务器上工作的事实只是巧合,而且它可能不会持久。

如果要获取包含最大日期的整行,请参阅SQL Select only rows with Max Value on a Column

于 2016-12-22T19:14:59.050 回答