56,677
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE table1(id int, name varchar(10), date datetime, sort int)
AS
SELECT 1 as id, 'aa' as name, '2017-12-1 17:00' as date UNION ALL
SELECT 2 as id, 'BB' as name, '2017-12-2 18:00' as date UNION ALL
SELECT 3 as id, 'CC' as name, '2017-12-1 13:00' as date
;
UPDATE table1 A, (
SELECT id, sort FROM(
SELECT
@id := CASE WHEN TIMESTAMPDIFF(day, @dt, date) = 0 THEN @id ELSE @id+1 END as sort,
@dt := date,
id
FROM table1, (SELECT @dt:=NULL, @id:=0) x
ORDER BY date
)B
) B
SET A.sort = B.sort
WHERE A.id = B.id
;
SELECT * FROM table1;