我有一个名为Joined(varchar(50))的MYSQL列,其值为13个数字如何实现该查询?
UPDATE `users` SET `joined` = 153ZZZZZZZZZZ
尝试:
UPDATE `users`
SET `joined` = CONCAT('153', FLOOR(RAND()* 9000000000) + 1000000000)
你可以生成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