【发布时间】:2014-09-23 14:04:17
【问题描述】:
我不确定您是否正确理解了我的问题。所以我可以解释一下。我有一个客户表,需要用不同的数字进行测试(无论它是否真实)。所以这是脚本:
customer_db
+----+------------+
| ID | NUMBER |
+----+------------+
| 1 | 0812345678 |
+----+------------+
| 2 | 0812345678 |
+----+------------+
| 3 | 0812345678 |
+----+------------+
.
.
.
|100 | 0812345678 |
根据表格。我运行了这个脚本:
UPDATE customer_db SET number = FLOOR(0812345678 + rand()*1000000);
这样做。我希望该字段保持与前导“081”相同的格式,并随机其余 6 位数字。 但事实并非如此。表格变成了这些:
+----+------------+
| ID | NUMBER |
+----+------------+
| 1 | 812246797 |
+----+------------+
| 2 | 816548798 |
+----+------------+
| 3 | 815787898 |
+----+------------+
.
.
.
|100 | 813454687 |
它是 9 位而不是 10 位。因为缺少前导 '0'。我应该怎么做才能在随机后保持领先的“0”。
【问题讨论】:
-
也许你应该使用字符串类型而不是像 CHAR 这样的数字?看到这个帖子link
-
我可以用
CHAR做数学吗? -
先做数学,然后转换为 CHAR 并用 0 填充
-
请给我看,我不擅长mysql。 :(
-
见dba.stackexchange.com/questions/15052/… 和stackoverflow.com/questions/17612920/lpad-with-leading-zero - 这些应该有助于理解它。其中一个例子是
UPDATE t1 SET NUMER=LPAD(NUMER,6,'0')- 另见stackoverflow.com/a/11165118 和stackoverflow.com/a/11165127
标签: php mysql random sql-update