【问题标题】:Randomize rows values in MySQL based on current data根据当前数据随机化 MySQL 中的行值
【发布时间】:2021-11-10 17:21:35
【问题描述】:

我有一个包含真实数据的 MySQL 表 wallet,我想根据原始数据将这些数据随机化为相似的值。

例如,使用所有行的 RAND 百分比(从 -20% 到 +20%)更新 wallet 表上的 amount 列值。

用 PHP 会:

foreach (Wallet:select('id', 'amount')->get() as $row) {
    $row->amount = $row->amount + ($row->amount * (rand(-20, 20) / 100));
    $row->save();
}

类似的东西?:

UPDATE `wallet` SET `amount` = `amount` + `amount` * IF(RAND() < 0.5, -1, 1) * FLOOR(1 + RAND() * 20) / 100;

谢谢!

【问题讨论】:

  • 而且,问题/问题是?
  • 如果 MySQL 查询示例有效。
  • select round(rand()*40-20,2); 会得到一个介于 -20 和 +20 之间的随机值

标签: mysql random


【解决方案1】:

最后,解决方案很简单:

UPDATE `wallet` SET `amount` = `amount` + `amount` * ROUND(RAND() * 40 - 20, 2) / 100;

感谢@Luuk。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    相关资源
    最近更新 更多