例如,有一個表中的幾個項目mysql的設置一個項目ID爲AUTO_INCREMENT最大ID
id |name|info
1 |Jim |Male
2 |Rob |Male
表的ID是auto_increment的,現在我想更新吉姆的行的底部搶,並得到最新的ID,又名
id |name|info
2 |Rob |Male
3 |Jim |Male
並獲得(3)的ID,什麼是SQL表達式?
例如,有一個表中的幾個項目mysql的設置一個項目ID爲AUTO_INCREMENT最大ID
id |name|info
1 |Jim |Male
2 |Rob |Male
表的ID是auto_increment的,現在我想更新吉姆的行的底部搶,並得到最新的ID,又名
id |name|info
2 |Rob |Male
3 |Jim |Male
並獲得(3)的ID,什麼是SQL表達式?
由於您無法在同一更新查詢中選擇max(id),因此您必須將max(id)定義爲變量。查詢您需要:
SET @max = (SELECT max(`id`) FROM `table` FOR UPDATE);
UPDATE `table` SET `id` = @max+1 WHERE `name` = "Jim";
編輯:你是不是應該更新的ID,因爲它是一個唯一的標識符。如果你想使用排序方法,你應該添加一個整數列「位置」。
沒有更新自動增量列,你可以刪除吉姆的行,然後重新插入,這將是ID = 3
DELETE FROM `table` where id = 1
然後
INSERT INTO `table` (name , info) VALUES ('jim' , 'male')
這聽起來就好像你要使用該id用於某種目的,而不僅僅是識別record_,就像排序。不要這樣做。這不是一個ID的工作。 – CBroe