可能かどうかはわかりませんが、+1 を行う値を選択しているときに挿入しようとしています。私がこれを行っている理由は、私の列が自動インクリメントであるためですが、値はいたるところにあります。
これが私がこれまでに持っているものであり、挿入を行うことはできません:
insert into channels set chanid=(select chanid from channels where parent=2
order by chanid desc limit 1)+1
insert into channels(chanid)
select chanid+1 from channels where parent=2
order by chanid desc limit 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 set chanid=(select chanid+1 from channels where parent=2 order by chanid desc limit 1)
値をリセットauto-increment
するには、試すことができます
SET @var_count = 0;
UPDATE channels
SET chanid = (@var_count := @var_count + 1);
また
auto-increment
列をドロップして、PRIMARY KEY
その上に再作成します。