亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對 MySQL 表中的日期進行排序(不按日期排序)

對 MySQL 表中的日期進行排序(不按日期排序)

PHP
慕少森 2022-09-03 15:53:28
如何對表中列中的日期進行排序?(時間戳)請注意,我不是要求按日期對行進行排序,而是在詢問如何在記錄中交換日期,以便所有日期都按正確的順序排列;無需更改任何其他內容。所以;例如: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貢獻1805條經驗 獲得超9個贊

您可以使用CTE使用MySQL查詢更新表,該CTE計算每行的,排序方式為 和 ;將每個值替換為具有相應按行號排序的值: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

輸出(對于您的示例數據):


id  foo     bar

1   A       2010-01-01

2   B       2020-02-02

3   C       2030-03-03


查看完整回答
反對 回復 2022-09-03
  • 1 回答
  • 0 關注
  • 137 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號