【问题标题】:How can I random seed a MySQL column?如何随机播种 MySQL 列?
【发布时间】:2020-04-09 08:51:52
【问题描述】:

我的数据库中的列包含 4 个状态:

  • 0-主动
  • 1-等待用户输入
  • 2-存档中
  • 3-从存档中排除

我需要浏览该列并将未标记为 0 的内容随机更改为其他 3 个状态的随机选择。

对我来说,最好的方法是什么?有人要求我使用带有随机种子的 Python 脚本,以便可以重新创建状态。有人有想法吗?

【问题讨论】:

  • 您最好使用纯 MySQL 查询来做到这一点。为什么你特别想为此使用 python?
  • @GMB 我也是这么想的。我的经理刚刚要求我使用 Python 脚本快速重新创建它。我将继续研究 MySQL 路线。

标签: python mysql sql random sql-update


【解决方案1】:

我真的不明白在这里使用 python 有什么意义,您可以使用纯 MySQL 查询来满足相同的要求,如下所示:

update mytable set mystatus = floor(1 + rand() * 3) where mystatus <> 0

对于每一行,表达式floor(1 + rand() * 3) 为您提供一个介于 1 和 3 之间的随机值。

至于种子,the documentation says

如果指定整数参数N,则将其用作种子值:

  • 使用常量初始化器参数,种子在语句准备好时初始化一次,然后再执行。

  • 使用非常量初始值设定项参数(例如列名),种子将使用每次调用 RAND() 的值进行初始化。

这种行为的一个含义是,对于相等的参数值,RAND(N) 每次都返回相同的值,从而产生可重复的列值序列。

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2013-12-06
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多