PHP MySQLi插入获取最后一列值添加1
我正在尝试对包含3列的表运行INSERT查询。第一栏是我的问题所在 它被称为COMM_代码,VARCHAR值的长度为10,是主键,如果未选中ALLOW NULL,则它是主键 COMM_代码的值如下所示:PHP MySQLi插入获取最后一列值添加1,php,mysql,mysqli,insert,Php,Mysql,Mysqli,Insert,我正在尝试对包含3列的表运行INSERT查询。第一栏是我的问题所在 它被称为COMM_代码,VARCHAR值的长度为10,是主键,如果未选中ALLOW NULL,则它是主键 COMM_代码的值如下所示: COMM_CODE c20188 c20189 c20190 // and so on 我想做的是,当插入一条新记录时,基本上在最近的记录中添加1 因此,最近的记录是: c20190 因此,当我添加新记录时,新记录的COMM_代码将为: c20191 我试过这个: INSE
COMM_CODE
c20188
c20189
c20190
// and so on
我想做的是,当插入一条新记录时,基本上在最近的记录中添加1
因此,最近的记录是:
c20190
因此,当我添加新记录时,新记录的COMM_代码将为:
c20191
我试过这个:
INSERT INTO table_c
(COMM_CODE, COMM_DESC, DATE)
VALUES
(''+1, 'VIDEO GAMES', NOW());
但这只会在该列中添加一个数字1
我怎样才能做到这一点呢?这里是您查询的解决方案: 为了生成新代码,我在mysql中创建了get_new_code函数。我希望您了解mysql中函数的工作原理
CREATE FUNCTION `get_new_code`() RETURNS varchar(11)
BEGIN
Declare var_code VARCHAR(11);
SELECT max(`COMM_CODE`) INTO var_code FROM table_c;
RETURN (CONCAT('c',(convert(substr(var_code,2,length(var_code)), SIGNED INTEGER)+1)));
END
为了验证您的逻辑,您可以使用:
select get_new_code();
这样你就能得到清晰的图像。
在insert查询中调用此get_new_code函数,如下所示:
INSERT INTO
`table_c`(`COMM_CODE`, `COMM_DESC`, `COMM_DATE`)
VALUES
(get_new_code(),'Description text',NOW());
这应该能解决你的问题 您想如何向字符串中添加1?这就是我要解决的问题。我需要能够获得最新的通信代码,然后添加到其中。这可能吗?