我有代码例如:
PC_MB_TC_0001
PC_GH_TY_0002
PS_AB_VH_0003
IC_WC_XX_0001
IH_ML_FR_0002
这些代码是系统生成的。我使用了逻辑:首先找到以'P'开头的代码计数。然后在该计数中加1。 此逻辑工作正常,但从数据库中删除代码时将失败。 那么有任何MySQL查询可以做到这一点,或者任何人都可以帮助我解决其他逻辑。
我正在使用cakePhP。
非常感谢
答案 0 :(得分:0)
如果您可以使用MyISAM,您可以创建一个多列自动增量,为您完成工作。您需要将字符串和自动递增数字存储在单独的列中,以使此解决方案起作用。
对于MyISAM表,您可以在多列索引中的辅助列上指定AUTO_INCREMENT。在这种情况下,AUTO_INCREMENT列的生成值计算为MAX(auto_increment_column)+ 1 WHERE prefix = given-prefix。
答案 1 :(得分:0)
你可以尝试
SELECT 1+MAX(CONVERT(RIGHT(your_column_name, 4), SIGNED)) as newindex
FROM your_table
WHERE your_column_name LIKE 'P%';
答案 2 :(得分:0)
您可能想尝试查看
echo $this->ModelName->getInsertID();
或
echo $this->ModelName->getLastInsertID();
这些将为您提供MySQL记录的最后插入ID。然后你可以查找该id的代码值。