MySQL - 使用最后12位数的随机值更新已连接列

问题描述 投票:0回答:2

我有一个名为Joined(varchar(50))的MYSQL列,其值为13个数字如何实现该查询?

UPDATE `users` SET `joined` = 153ZZZZZZZZZZ
mysql
2个回答
2
投票

尝试:

UPDATE `users` 
SET `joined` = CONCAT('153', FLOOR(RAND()* 9000000000) + 1000000000)

2
投票

你可以生成md()随机字符串,例如:

UPDATE `users` 
SET `joined` = concat('153',SUBSTRING(MD5(RAND()) FROM 1 FOR 10) )

要么

UPDATE `users` 
SET `joined` = concat('153',SUBSTRING(MD5(RAND()) FROM 1 FOR 6), 
                            SUBSTRING(MD5(RAND()) FROM 1 FOR 4) )

或者,如果您只需要数字,则可以使用

UPDATE `users` 
SET `joined` = concat('153',CAST(rand()*1000000 as UNSIGNED), 
                            CAST(rand()*10000 as UNSIGNED) )

对于具有短字符串的行,您可以使用大小写来根据需要调整代码

UPDATE `users` 
SET `joined` = case when length(joined)= 14 then
                concat('153',CAST(rand()*10000000 as UNSIGNED), 
                            CAST(rand()*10000 as UNSIGNED) )
                    when  length(joined)= 13 then
                concat('153',CAST(rand()*1000000 as UNSIGNED), 
                            CAST(rand()*10000 as UNSIGNED) )
                .....
                end 
© www.soinside.com 2019 - 2024. All rights reserved.