我需要根据两个字段排序表格的结果:position
和update_time
。允许用户更改position
值(通过移动项目),然后重新排序。
但是,当用户移动某个项目时,我只会更新该项目的position
和update_time
,而不会更新所有项目。
table brands
------------------------
id | name | position | update_time
1 Instagram 2 '2016-06-29 15:41:15'
2 Microsoft 0 '2016-06-30 11:12:13'
3 Twitter 0 '2016-06-30 10:58:57'
4 Stackoverflow 1 '2016-06-30 11:11:52'
5 LinkedIn 0 '2016-06-30 10:41:37'
6 Google 2 '2016-06-30 11:12:40'
我的预期结果:
id | name | position | update_time
2 Microsoft 0 '2016-06-30 11:12:13'
4 Stackoverflow 1 '2016-06-30 11:11:52'
6 Google 2 '2016-06-30 11:12:40'
3 Twitter 0 '2016-06-30 10:58:57'
5 LinkedIn 0 '2016-06-30 10:41:37'
1 Instagram 2 '2016-06-29 15:41:15'
我使用的查询:
SELECT *
FROM brands
ORDER BY position ASC, update_time DESC
我面临的结果:
id | name | position | update_time
2 Microsoft 0 '2016-06-30 11:12:13'
3 Twitter 0 '2016-06-30 10:58:57'
5 LinkedIn 0 '2016-06-30 10:41:37'
4 Stackoverflow 1 '2016-06-30 11:11:52'
6 Google 2 '2016-06-30 11:12:40'
1 Instagram 2 '2016-06-29 15:41:15'
证明上述结果的 SQLFiddle 。
是否有可能通过查询完成我想要的内容,或者每当用户移动一个项目时我是否需要使用新位置更新所有项目?