如何對表中列中的日期進(jìn)行排序?(時(shí)間戳)請注意,我不是要求按日期對行進(jìn)行排序,而是在詢問如何在記錄中交換日期,以便所有日期都按正確的順序排列;無需更改任何其他內(nèi)容。所以;例如:id foo bar1 A 03-03-20302 B 01-01-20103 C 02-02-2020成為。。。id foo bar1 A 01-01-20102 B 02-02-20203 C 03-03-2030首選解決方案使用直接 MySQL 或 MySQL 和 PHP。
1 回答

Cats萌萌
TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個贊
您可以使用CTE使用MySQL查詢更新表,該CTE計(jì)算每行的,排序方式為 和 ;將每個值替換為具有相應(yīng)按行號排序的值:ROW_NUMBER()idbarbaridbar
WITH CTE AS (
SELECT id, bar,
ROW_NUMBER() OVER (ORDER BY id) AS rn_id,
ROW_NUMBER() OVER (ORDER BY bar) AS rn_bar
FROM data
)
UPDATE data d
JOIN CTE c1 ON c1.id = d.id
JOIN CTE c2 ON c2.rn_bar = c1.rn_id
SET d.bar = c2.bar
輸出(對于您的示例數(shù)據(jù)):
id foo bar
1 A 2010-01-01
2 B 2020-02-02
3 C 2030-03-03
- 1 回答
- 0 關(guān)注
- 128 瀏覽
添加回答
舉報(bào)
0/150
提交
取消