SQL - 使用随机IP地址更新所有行的列

时间:2018-06-02 23:01:29

标签: mysql sql random

我的MySQL中有一个表table_user,其中有ip_address列。

我想使用随机IP地址

更新所有行中ip_address的值

示例,例如12.345.678.90,但为了与新脚本代码兼容,每个ip_address行必须不同,昨天我发现312892条记录一个IP:)

我尝试了这个SQL,但没有使用IP地址。

UPDATE `table_user` SET `ip_address` = CONCAT(
    SUBSTRING('12.345.678.90', FLOOR(RAND()*26) + 1, 1),
    SUBSTRING('12.345.678.90', FLOOR(RAND()*26) + 1, 1),
    SUBSTRING('12.345.678.90', FLOOR(RAND()*26) + 1, 1),
    SUBSTRING('12.345.678.90', FLOOR(RAND()*26) + 1, 1),
    SUBSTRING('12.345.678.90', FLOOR(RAND()*26) + 1, 1),
    SUBSTRING('12.345.678.90', FLOOR(RAND()*26) + 1, 1)
);

我该怎么做?

2 个答案:

答案 0 :(得分:2)

此方法应该有效:

UPDATE `table_user` SET `ip_address` = CONCAT(
    TRUNCATE( RAND() * (255 - 1 + 1) + 1, 0 ), '.',
    TRUNCATE( RAND() * (255 - 1 + 1) + 1, 0 ), '.',
    TRUNCATE( RAND() * (255 - 1 + 1) + 1, 0 ), '.',
    TRUNCATE( RAND() * (255 - 1 + 1) + 1, 0 )
)

它基本上生成1到255之间的数字.TRUNCATE函数除去十进制数(截断为0小数)。 RAND函数生成从0(包括)到1(不包括)的数字。

答案 1 :(得分:0)

我知道这是针对 MySQL 的,但如果您来这里是为了寻找 T-SQL 代码,这里是:

i