如何从 php 中的 F-00001 开始生成唯一的 tag_id
How to generate unique tag_id start from F-00001 in php
如何在使用 php 和 mysql 将日期插入项目 table 时从 F-00001 开始生成唯一的 tag_id。
这是我的 table。我的数据库 table 中有三列使用 MySQL.
CREATE TABLE item (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(30) NOT NULL,
tag_id VARCHAR(8) NOT NULL
)
正如@mickmackusa 指出的那样,您不需要在数据库中包含此字段,因为您可以从自动递增的 id
值中自动生成它。有多种方法可以做到这一点。
使用 generated column(MySQL 5.7 或更高版本):
CREATE TABLE item (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(30) NOT NULL,
tag_id VARCHAR(8) AS CONCAT('F-', LPAD(id, 5, '0'))
)
使用 view:
CREATE VIEW item_view AS
SELECT *, CONCAT('F-', LPAD(id, 5, '0')) AS tag_id FROM item
使用 str_pad
在 PHP 中生成:
// assume $row is an associative array of row of table
$tag_id = 'F-' . str_pad($row['id'], 5, '0', STR_PAD_LEFT);
如何在使用 php 和 mysql 将日期插入项目 table 时从 F-00001 开始生成唯一的 tag_id。
这是我的 table。我的数据库 table 中有三列使用 MySQL.
CREATE TABLE item (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(30) NOT NULL,
tag_id VARCHAR(8) NOT NULL
)
正如@mickmackusa 指出的那样,您不需要在数据库中包含此字段,因为您可以从自动递增的 id
值中自动生成它。有多种方法可以做到这一点。
使用 generated column(MySQL 5.7 或更高版本):
CREATE TABLE item (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(30) NOT NULL,
tag_id VARCHAR(8) AS CONCAT('F-', LPAD(id, 5, '0'))
)
使用 view:
CREATE VIEW item_view AS
SELECT *, CONCAT('F-', LPAD(id, 5, '0')) AS tag_id FROM item
使用 str_pad
在 PHP 中生成:
// assume $row is an associative array of row of table
$tag_id = 'F-' . str_pad($row['id'], 5, '0', STR_PAD_LEFT);