插入时选择?

时间:2012-07-31 10:55:22

标签: mysql select insert

我不确定它是否可能,但我在尝试选择一个值来执行+1时插入。我这样做的原因是因为我的列是自动增量,但值都是在各个地方。

这是我到目前为止所做的事情,它不会让我做插入:

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

4 个答案:

答案 0 :(得分:1)

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

答案 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

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

答案 2 :(得分:0)

如果我已正确理解你的问题,请试试这个!

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

答案 3 :(得分:0)

要重置auto-increment值,您可以尝试

SET @var_count = 0;

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

删除auto-increment列并在其上重新创建{.1}}。