合并两个SQL查询

时间:2015-05-11 06:54:00

标签: mysql sql node.js

我的表格user的综合唯一索引为subidname。为了在表user中插入新行,我必须确保name不存在,否则subid必须增加1.我倾向于用两个来解决问题像这样的查询。

DB.query("SELECT subid FROM user WHERE name='"+name+"' ORDER BY subid DESC LIMIT 1",function(er,rows){
    if(er){
        throw er;
    }
    var row = rows[0];
    var subid = row ? row.subid+1 : 0;
    DB.query("INSERT INTO user(name,subid) VALUES('"+name+"','"+subid+"')",function(er){
        if(er){
            throw er;
        }
    });
});

如何在单个查询中获得相同的结果?

2 个答案:

答案 0 :(得分:1)

尝试为:

  insert into userT 
  select 'bbb', coalesce(max(subid),0)+1 from userT where name = 'bbb';

'bbb'替换为您name的程序值。

这是一个显示它工作的小提琴:http://sqlfiddle.com/#!9/689db1/1

答案 1 :(得分:0)

尝试使用此查询:

插入用户(name,subid)选择名称,if((从用户中选择count('em>),其中name ='naresh')> 0,(从用户中选择count(),其中name ='naresh'),0)来自用户

祝你好运