gpt4 book ai didi

php - 显示无前导零的无符号 zerofill 自动增量值

转载 作者:行者123 更新时间:2023-11-29 07:14:19 25 4
gpt4 key购买 nike

我的主键是 user_id,它是 auto incremant UNSIGNED ZERO FILL,我想在页面上显示 user_id 而不带前导零(意味着 1 而不是 0000000001 )..我们如何在 php 或 mysql 中做到这一点 还有一个问题...

如果我删除最后一条记录(让 user_id=21),它具有该表的最高 ID,那么我们可以将自动增量值调整为 21 而不是该表的 22。

最佳答案

在 PHP 中不带前导零显示:

echo (int) $val;

要设置 auto_increment 值(这不是好的做法,您应该让 MySQL 为您处理主键!):

mysql> CREATE TABLE test( id INTEGER AUTO_INCREMENT, data TEXT, PRIMARY KEY id(id) );
Query OK, 0 rows affected (0.05 sec)

mysql> INSERT INTO test VALUES (1,'23'),(2,'32'),(3,'3232');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'test';
+----------------+
| AUTO_INCREMENT |
+----------------+
| 4 |
+----------------+
1 row in set (0.00 sec)

mysql> SELECT MAX(id) FROM test;
+---------+
| max(id) |
+---------+
| 3 |
+---------+

1 row in set (0.00 sec)

然后从测试中删除,检查auto_increment是否大于PHP中的max(id),如果不是:

mysql> ALTER TABLE test AUTO_INCREMENT=3;
Query OK, 3 rows affected (0.05 sec)
Records: 3 Duplicates: 0 Warnings: 0

因为你有 3 条记录,auto inc 是 4,删除了 1 条所以 2 条记录,auto inc 应该是下一个值,所以将它设置为 3。

如上所述,这不是好的做法,如果您在执行这些 auto_inc 查询时不锁定表,您最终可能会得到困惑的数据 - 牺牲主键顺序的性能似乎不明智!

关于php - 显示无前导零的无符号 zerofill 自动增量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2447191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com