1

可能かどうかはわかりませんが、+1 を行う値を選択しているときに挿入しようとしています。私がこれを行っている理由は、私の列が自動インクリメントであるためですが、値はいたるところにあります。

これが私がこれまでに持っているものであり、挿入を行うことはできません:

insert into channels set chanid=(select chanid from channels where parent=2
order by chanid desc limit 1)+1
4

4 に答える 4

1
insert into channels(chanid)
select chanid+1 from channels where parent=2 
order by chanid desc limit 1 
于 2012-07-31T10:57:55.837 に答える
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

参照: http://bugs.mysql.com/bug.php?id=6980

于 2012-08-02T19:43:44.597 に答える
0

あなたの質問を正しく理解できたら、これを試してみてください!

insert into channels set chanid=(select chanid+1 from channels where parent=2 order by chanid desc limit 1)
于 2012-07-31T10:58:14.297 に答える
0

値をリセットauto-incrementするには、試すことができます

SET @var_count = 0;

UPDATE channels 
SET chanid = (@var_count := @var_count + 1);

また

auto-increment列をドロップして、PRIMARY KEYその上に再作成します。

于 2012-07-31T10:59:31.547 に答える