我使用以下两行来复制SQL数据库中单个数据的id。
$generate_projects_number =
"UPDATE `projects`
SET `id_project` = LAST_INSERT_ID()
WHERE `projects`.`id` = LAST_INSERT_ID();";
$conn->query($generate_projects_number);
现在我在行id_project
中只有相同的ID号,我希望有2018P4158(当前年份,'P',项目ID)。
我们项目编号的方案:当前年份,'P',项目ID(示例 2018P4158 )
如何在LAST_INSERT_ID()值中添加前缀?
答案 0 :(得分:7)
您可以使用CONCAT
$generate_projects_number =
"UPDATE `projects`
SET `id_project` = CONCAT(YEAR(CURDATE()), 'P', `projects`.`id`)
WHERE `projects`.`id` = LAST_INSERT_ID();";
$conn->query($generate_projects_number);
您可以自己设置年份(使用PHP),也可以使用YEAR(CURDATE())
获取数据库端的当前年份。您不需要两次调用函数LAST_INSERT_ID
,因为值id
应该相同(请参阅查询的WHERE
部分)。
答案 1 :(得分:4)
您可以使用CONCAT()
。它将两个或多个表达式连接在一起。
CONCAT(YEAR(NOW()), 'P', LAST_INSERT_ID())
有关详细信息,请参阅DBMS的文档。