我有一个表,我添加了一个名为 phone
的列 - 该表还将id设置为auto_increments的主键 . 如何在电话列中插入随机值,赢得't be duplicated. The following UPDATE statement did insert random values, but not all of them unique. Also, I' m未售出我也正确地转换了 phone
字段,但在尝试将其设置为带有ALTER TABLE命令的int(11)时遇到了问题(主要是它正确运行,但是当添加一个带有新电话号码的行时,插入的值被转换为不同的数字) .
UPDATE Ballot SET phone = FLOOR(50000000 * RAND()) + 1;
表规格
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| phone | varchar(11) | NO | | NULL | |
| age | tinyint(3) | NO | | NULL | |
| test | tinyint(4) | NO | | 0 | |
| note | varchar(100) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
4 回答
我将通过生成一个(临时)表来解决这个问题,该表包含您需要的范围内的数字,然后循环遍历您希望提供随机数的表中的每个记录 . 从临时表中选择一个随机元素,用该表更新表,然后将其从临时表中删除 . 不漂亮,也不快......但易于开发且易于测试 .
试试这个
您是否尝试过创建手机,然后检查该列中是否已存在该值?