有一個包含數百個條目和六列的表。 「交易」列中的其中一列填充了空值,我們現在需要該列具有唯一值,現有條目是唯一的。MySQL按時間順序增量更新空列值
有一個'時間'日期時間列,理想情況下,'交易'列將逐步更新,整數從1開始按'時間'順序。
這看起來很簡單,但經過多次下載和恢復實時數據庫,它現在看起來不那麼簡單,一點幫助將不勝感激。
SQL Fiddle - Sample of live database
最終解決非常感謝胡安·卡洛斯·Oropeza的解決方案,併爲我耐心。
UPDATE `my_table` t1
INNER JOIN (SELECT t.*,
@rownum := @rownum + 1 AS `rank`
FROM `my_table` t,
(SELECT @rownum := 0) r
ORDER BY time
) t2
ON t1.`id` = t2.`id`
SET t1.`transaction` = t2.`rank` where t1.`transaction` is null
表有主鍵?向我們展示dbschema。 –
該計劃旨在將「交易」列作爲主鍵,因爲它將是唯一的。我可以添加一個ID列作爲主鍵來完成這個任務,然後放下它。因爲它永遠不會被使用,所以擁有另一個ID列似乎並不有用。 –
這就是爲什麼你應該把這個信息放在首位的問題上。現在請把你的創建表,也許我可以修復我的查詢。 –