私は次の表を持っています:
CREATE TABLE `entries` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
updated_at
との両方でエントリを並べ替えたいcreated_at
。
しかし、どちらかが可能性がありますNULL
。
私の質問:
SELECT *
FROM `entries`
ORDER BY `updated_at` DESC, `created_at` DESC, `id` DESC
ただし、これにより、更新されていないすべてのエントリが結果の下部に表示されます。
基本的に、利用可能な最後の日付で並べ替える必要があります。そして、でソートできるものがない場合id
。