SQL为LAST_INSERT_ID()添加前缀

时间:2018-04-12 08:57:48

标签: php sql

我使用以下两行来复制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()值中添加前缀?

2 个答案:

答案 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的文档。

MySQL Concat

Transact-SQL Concat