如何在添加新的随机字符串之前检查?

时间:2018-04-08 17:17:47

标签: mysql sql phpmyadmin

我有一个包含很多行的数据库,我想用 4个字符随机字符串0-9a-zA-Z更新每行中的列,但确保此随机字符串不是已经存在。

所有列都应该用唯一字符串更新的重要部分,我不知道如何做到这一点,也许通过在随机字符串已经存在时重新创建一个新的随机字符串。

最后,如果数据库包含500,000行,则所有500,000行都使用唯一的随机值进行更新。

该表名为messages,该列名为messageid

如何实现?

2 个答案:

答案 0 :(得分:1)

首先,为什么是一个字符串?为什么不使用整数作为消息ID?这很容易实现:

set @m := 0;
update messages
    set message_id = (@m := @m + 1)
    order by rand();

你可以用字符串做类似的事情,但它更麻烦,使用数字可以减少痛苦。

答案 1 :(得分:0)

从问题看,你似乎想要生成一个随机字符串 基本上要实现这一点,你需要使用rand()函数 您可以使用它来实现随机字符串。

select conv(floor(rand() * 9999), 20, 36) ;
select SUBSTRING(MD5(RAND()) FROM 1 FOR 4);

要申请你的桌子,

update messages
    set message_id = (select conv(floor(rand() * 9999), 20, 36));
or



update messages
        set message_id = (select SUBSTRING(MD5(RAND()) FROM 1 FOR 4));