0

2 つの 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

1 つのサーバーで動作しているように見えるという事実は単なる偶然であり、持続しない可能性があります。

最大日付を含む行全体を取得する場合は、SQL 列の最大値を持つ行のみを選択するを参照してください。

于 2016-12-22T19:14:59.050 に答える