2011-02-02 103 views
3

我使用select語句將記錄從一個表插入到另一個表中。插入的表具有一個新的字段,每次更新時應增加1,但不應該是自動增量字段,因爲每次更新時需要爲每組記錄再次啓動數字。如果正在使用的select語句選擇42條記錄,則對於從1開始的每條記錄,新表的字段將增加1。下一個組應該將該字段再次設置爲1,然後對每個選定的記錄進行遞增。這可能嗎?我很難找到使用的語法,因爲我的大多數搜索只是找到有關自動遞增鍵的結果。基於mysql中的select插入期間增加非自動增量字段

INSERT into images (filename, imgpath, imagenumber) 
SELECT filename, imgpath, 1+ 
FROM old_images 
WHERE event_id = 20 

這是表的一個簡單的例子,但我不知道是否有一種方法來增加什麼被放入影像NUMBER場中的圖像表,直接在MySQL。

回答

4

看一看使用沿着

SET @t1=0; 
INSERT into images (filename, imgpath, imagenumber) 
SELECT filename, 
     imgpath, 
     @t1 := @t1+1 
FROM old_images 
WHERE event_id = 20 
+0

行這看起來是正是我需要的User-Defined Variables

的東西,但是當我嘗試使用實例從MySQL,以及你的榜樣它總是爲變量返回一個空值。 當我在查詢瀏覽器中執行以下操作時,列名稱包含表達式,但值爲空。我錯過了明顯的東西嗎? – jsieber 2011-02-03 04:06:06