0

現在、データベースからトピックを取得しようとしています。

topics (
  `replied_at` int(11) unsigned DEFAULT NULL,
  `created_at` int(11) unsigned DEFAULT NULL,
)

最終的に作成または返信されたトピックを取得したいので、より大きなanswered_atまたはcreated_atでトピックを並べ替えたいと思います。

例えば:

topic1:
replied_at: NULL
created_at: 1111

topic2:
replied_at: 2222
created_at: 0001

topic3:
replied_at: 3333
created_at: 1111

結果は次のとおりです。

トピック3 トピック2 トピック1

mysql はこのクエリをサポートしていますか?

ありがとう :)

編集:

このクエリを使用しますが、順序が間違っています):

SELECT * FROM トピック ORDER BY GREATEST(replied_at, created_at) desc limit 3\G;

4

2 に答える 2

2
select * from `topics`
         order by greatest(coalesce(`replied_at`,0),coalesce(`created_at`,0)) desc;

replied_atまたは、が常に よりも大きいと仮定すると、次のようになりcreated_atます。

select * from `topics`
         order by coalesce(`replied_at`,`created_at`,0) desc;
于 2013-09-24T11:10:16.490 に答える