请通过从两列中选择两个值到同一表的一列中来插入值。以下是我的查询。
create table table1( id int(3) zerofill auto_increment primary key, prefix varchar(10) default "AB", username varchar(10) ) engine=innodb;
MySQL插入查询
insert into table1 (username) select prefix + (LPAD(Coalesce(MAX(id),0) + 1,3, '0')) from table1;
上面的插入查询不起作用,它在用户名列中提供了null,请提供任何帮助。谢谢。预期结果如下。
id Prefix username 001 AB AB001 002 AB AB002 003 AB AB003
问题:
CONCAT()
NULL
COALESCE()
IFNULL()
您的查询应如下所示
INSERT INTO table1 (username) SELECT CONCAT(COALESCE(prefix, 'AB'), LPAD(COALESCE(MAX(id), 0) + 1, 3, '0')) FROM table1
结果:
| ID | 前缀| USERNAME | -------------------------- | 1 | AB | AB001 | | 2 | AB | AB002 |
这是 SQLFddle