gpt4 book ai didi

MySQL Alter table,添加具有唯一随机值的列

转载 作者:可可西里 更新时间:2023-11-01 07:23:53 27 4
gpt4 key购买 nike

我有一个表,我添加了一个名为 phone 的列 - 该表还有一个 id 设置为 auto_increments 的主键。如何在电话列中插入一个随机值,该值不会被复制。以下 UPDATE 语句确实插入了随机值,但并非所有值都是唯一的。另外,我不卖我也正确地转换了 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    |                |+------------+--------------+------+-----+---------+----------------+

最佳答案

-- tbl_name: Table
-- column_name: Column
-- chars_str: String containing acceptable characters
-- n: Length of the random string
-- dummy_tbl: Not a parameter, leave as is!
UPDATE tbl_name SET column_name = (
SELECT GROUP_CONCAT(SUBSTRING(chars_str , 1+ FLOOR(RAND()*LENGTH(chars_str)) ,1) SEPARATOR '')
FROM (SELECT 1 /* UNION SELECT 2 ... UNION SELECT n */) AS dummy_tbl
);

-- Example
UPDATE tickets SET code = (
SELECT GROUP_CONCAT(SUBSTRING('123abcABC-_$@' , 1+ FLOOR(RAND()*LENGTH('123abcABC-_$@')) ,1) SEPARATOR '')
FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) AS dummy_tbl
);

Random string in MySQL

关于MySQL Alter table,添加具有唯一随机值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4661144/

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