最好的方法是什么,或者,如何将PHP + SQL中的字段格式化为AB00000,其中第一个插入的字段应为AB00001,依此类推。我有一个PHP + SQL的网页来创建一个表单并将其插入到一个表中,其中一列是" reference_nr"并且我的整个代码已经使用ID(AutoIncrement)制作,因此我不能将其用于该表。
我需要的是总是将最后使用的可能写入另一个不同的表并且在INSERT到表格的表之前我会选择最后一个值并增加+ 1并使用该数学运算的结果INSERT
答案 0 :(得分:1)
SQL已经带来了它:
使用SQL-Function LAST_INSERT_ID()类似于我在下面链接的源页面中的示例。假设table foo有一个自动增量字段“id”:
INSERT INTO
foo (auto, text, somevalue)
VALUES
(NULL,'text', 2); # id was generated hoer
然后你做:
UPDATE
foo
SET
somevalue = somevalue + 1
WHERE
id = LAST_INSERT_ID()
来源:http://dev.mysql.com/doc/refman/5.7/en/getting-unique-id.html
答案 1 :(得分:0)
如果您的问题是如何获取字符串列的自动增量值,其前缀为AB00000,则自动增量字段仅为数字。 如果字段具有固定格式,则可以使用以下值中的id值创建普通插入:
SELECT CONCAT('AB', LPAD( MAX(SUBSTRING(id,3)+1 ,5,'0') from table
直接在插入中使用此值以避免交易问题