2011-11-14 15 views
0

私のデータベースのテーブルの最新の編集日を探したい。MySQL:InnoDB最終更新日

これは、私が使用する予定のクエリの例である:それは作品

 SELECT `edited` FROM `table1` 
UNION SELECT `edited` FROM `table2` 
UNION SELECT `edited` FROM `table3` 
UNION SELECT `edited` FROM `table4` 
ORDER BY `edited` DESC 
LIMIT 1 

が、私は誰かが、よりパフォーマンスの高いソリューションを提供することができます期待しています。

答えて

1

これは、各テーブルからすべての行を戻すのではなく、各選択を1つの行に制限するので、より高速に実行できます。

 SELECT MAX(`edited`) FROM `table1` 
UNION SELECT MAX(`edited`) FROM `table2` 
UNION SELECT MAX(`edited`) FROM `table3` 
UNION SELECT MAX(`edited`) FROM `table4` 
ORDER BY `edited` DESC 
LIMIT 1 
+0

"may"を使用しても、自信を与えません! :-)私はそれを裏付ける情報で答えを期待していました。 – Sonny

+0

@ソニー、あなたは各テーブルから日付の値を編集しようと考えていますが、もっと良い方法は考えられませんが、このタイプのクエリが頻繁に必要になる場合はDB構造の変更を検討することをお勧めします。 –

+0

あなたはどのような変更を提案しますか? – Sonny

関連する問題