有一张表有uid,username,passwrod,salt四个字段,其中id为自增长字段,当前最大值是5,我想插入一行记录,它的id要用现在的最大id值加10,也就是15,所以用了如下的语句:select max(uid)+10 as newId from cd_members;
insert into cd_members (uid, username,password,salt) values("+newId+",'username', 'f6a05436cb726937f0ed554cf5bc2250','123456');结果数据是插入进去了,不过id是6而不是15.
很奇怪,请大家指教。
insert into cd_members (uid, username,password,salt) values("+newId+",'username', 'f6a05436cb726937f0ed554cf5bc2250','123456');结果数据是插入进去了,不过id是6而不是15.
很奇怪,请大家指教。
呵呵
select @newId:=(max(uid)+10) from cd_members;
insert into cd_members (uid, username,password,salt) values(@newId,'username', 'f6a05436cb726937f0ed554cf5bc2250','123456');
max(uid)+10 as newId from cd_members;
insert into cd_members (uid, username,password,salt) values("+newId+",'username', 'f6a05436cb726937f0ed554cf5bc2250','123456');
select max(uid)+10 into @newId from cd_members; insert into cd_members (uid, username,password,salt) values(@newId,'username', 'f6a05436cb726937f0ed554cf5bc2250','123456');
select max(uid)+10,'username', 'f6a05436cb726937f0ed554cf5bc2250','123456' from cd_members;
楼主用哪种方法都可以。
不够,楼主的
select max(uid)+10 as newId from cd_members;
insert into cd_members (uid, username,password,salt) values("+newId+",'username', 'f6a05436cb726937f0ed554cf5bc2250','123456');
我给提个醒。你的 newId 是当前sql有效,下一个sql是不能用你的上个sql的返回值的。要你就用存储过程 声明个变量 newId,然后:
select max(uid)+10 into newId from cd_members; 执行如下字符串即可: "insert into cd_members (uid, username,password,salt) values("+newId+",'username', 'f6a05436cb726937f0ed554cf5bc2250','123456')" ;