sql-为具有随机ip地址的所有行更新列

nxagd54h  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(274)

我有一张table table_user 在我的mysql中有一个列 ip_address .
我想更新 ip_address 在所有具有随机ip地址的行中
比如说 12.345.678.90 但它必须在每个ip地址行不同的兼容新的脚本代码,昨天我发现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)
);

我该怎么做?

f1tvaqid

f1tvaqid1#

此方法应适用于:

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(排除)的数字。

相关问题