Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เพิ่มข้อมูลพร้อมเลขลำดับนำหน้าศูนย์ใน MySQL ด้วย LPAD

การสร้างรหัสอัตโนมัติแบบมีเลขศูนย์นำหน้า (001, 002, ...)

ใช้ INSERT INTO ... SELECT ร่วมกับ LPAD() และ COALESCE(MAX(id),0)+1 เพื่อสร้างเลขต่อเนื่อง

สร้างตาราง

mysql> CREATE TABLE DemoTable1967 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserId VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.00 sec)

เพิ่มข้อมูล 3 แถว

mysql> INSERT INTO DemoTable1967(UserId)
    -> SELECT LPAD(COALESCE(MAX(Id), 0) + 1, 3, '0') FROM DemoTable1967;
Query OK, 1 row affected (0.00 sec)
-- ทำซ้ำอีก 2 ครั้ง

ผลลัพธ์

mysql> SELECT * FROM DemoTable1967;
+----+--------+
| Id | UserId |
+----+--------+
| 1  | 001    |
| 2  | 002    |
| 3  | 003    |
+----+--------+

คำอธิบาย: MAX(Id) หาค่าสูงสุด, COALESCE(...,0) กัน NULL ตอนตารางว่าง, +1 เพิ่มลำดับ, LPAD(..., 3, '0') ทำให้กว้าง 3 หลักเติมศูนย์หน้า