我有一個表,其中有一列名爲uid
,它使用Autoincrement,並使用1,2,3等更新。現在我有cron作業,刪除超過2天的行。所以現在我的UID列是2345 n..I想將其重置爲1到n again.I嘗試下面的代碼用1更新整列到n
UPDATE `tv` SET `uid` = ''
我是通過通過PHP腳本中的所有行和更新的UID思維迴路,有沒有其他的替代方案使用單個SQL命令?
我有一個表,其中有一列名爲uid
,它使用Autoincrement,並使用1,2,3等更新。現在我有cron作業,刪除超過2天的行。所以現在我的UID列是2345 n..I想將其重置爲1到n again.I嘗試下面的代碼用1更新整列到n
UPDATE `tv` SET `uid` = ''
我是通過通過PHP腳本中的所有行和更新的UID思維迴路,有沒有其他的替代方案使用單個SQL命令?
你可以嘗試這樣的事情:
UPDATE `tv` t
set t.`uid` = (SELECT count(*)
from `tv` s
WHERE t.`uid` >= s.`uid`)
這算多少的UID是有是小於或等於則一個更新,所以當第一UID,可以說2345正在更新,只有1 uid與小於/等於他因此將獲得價值1等等...
編輯:嘗試這 -
UPDATE `tv` t
INNER JOIN(SELECT s.`uid`,count(*) as cnt
from `tv` s
INNER JOIN `tv` ss
ON(s.`uid` >= ss.`uid`)
GROUP BY s.`uid) tt
ON(t.`uid`=tt.`uid`)
SET t.`uid` = tt.cnt
@ lad2025:您好,請刪除重複的,這是不解決我的問題 – Vishnu