我不確定是否有可能,但我正在嘗試做一個插入,同時選擇一個值做+1。我這樣做的原因是因爲我的列是自動增量,但值都遍佈各地。插入時選擇?
這裏就是我有這麼遠,它不會讓我做插件:
insert into channels set chanid=(select chanid from channels where parent=2
order by chanid desc limit 1)+1
我不確定是否有可能,但我正在嘗試做一個插入,同時選擇一個值做+1。我這樣做的原因是因爲我的列是自動增量,但值都遍佈各地。插入時選擇?
這裏就是我有這麼遠,它不會讓我做插件:
insert into channels set chanid=(select chanid from channels where parent=2
order by chanid desc limit 1)+1
嘗試在子查詢中使用別名。它爲我做了詭計。
insert into channels
set chanid=(
select c.chanid
from channels as c
where c.parent=2
order by c.chanid desc
limit 1
)+1
insert into channels(chanid)
select chanid+1 from channels where parent=2
order by chanid desc limit 1
不工作我試圖直接不通過一個PHP頁面 – thevoipman 2012-07-31 11:19:19
如果我理解正確你的問題試試這個!
insert into channels set chanid=(select chanid+1 from channels where parent=2 order by chanid desc limit 1)
做到這一點到MySQL我以前嘗試過這種方式,它仍然沒有讓我 - 它說,我可以」 t指定目標表「渠道」從udpate從caluse – thevoipman 2012-07-31 11:07:34
要重置auto-increment
值,你可以嘗試
SET @var_count = 0;
UPDATE channels
SET chanid = (@var_count := @var_count + 1);
或
下降auto-increment
柱,用PRIMARY KEY
它重新創建它。
我仍然需要做一個插入...我如何做一個插入,並採取各自的等值的最後chanid? – thevoipman 2012-07-31 11:05:43
你可以使用LAST_INSERT_ID()來fecth最後插入的ID表 – Omesh 2012-07-31 11:07:27
請給我一個關於如何做到這一點的例子 - 我沒有使用PHP這個 – thevoipman 2012-07-31 11:19:49
這 - 這工作完美無瑕,非常感謝! – thevoipman 2012-08-02 20:33:57