我希望将lastInsertId()
方法输出第2行作为000002。我该怎么办?如果是select语句,我可以使用LPAD()
获取它。但在这种情况下它是如何完成的?
答案 0 :(得分:0)
如果您仍处于执行INSERT
语句的同一MySQL会话中,则可以使用以下表达式计算格式化的最后插入ID:
LPAD(LAST_INSERT_ID(), GREATEST(6, LENGTH(LAST_INSERT_ID())), '0')
这将返回带有前导零的id值,默认情况下总计为6位。它还会考虑id值是否超过6位数(这是GREATEST(...)
的作用)。
您可以使用该表达式选择格式化的最后一个id,将其分配给MySQL变量:
SELECT LPAD(LAST_INSERT_ID(), GREATEST(6, LENGTH(LAST_INSERT_ID())), '0');
SET @myId = LPAD(LAST_INSERT_ID(), GREATEST(6, LENGTH(LAST_INSERT_ID())), '0');
您也可以在其他语句中使用它,但请注意LAST_INSERTED_ID()
语句后INSERT
会发生变化。
你也可以使用PHP中从MySQL返回的最后一个插入的id并在那里格式化:
$formattedId = sprintf('%06d', lastInsertId());
默认情况下,sprintf
会将ID扩展为6位,但也可以使用更长的ID。
答案 1 :(得分:-1)
如果你想从mysql查询中获取它,你可以参考以下语句:
SELECT
LPAD(columnname, length(columnname),'00000')
FROM
TABLENAME
ORDER BY
COLUMNNAME DESC LIMIT 1