You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL UPDATE设置79-80随机数失效问题求助

问题解决:生成79-80之间的随机数SQL语句修正

你的原语句存在逻辑错误,导致生成的数值范围完全不符合预期:

UPDATE tableName SET columnName = FLOOR( 79 + RAND( ) *80 );

这段代码会生成79到158之间的整数——因为RAND()返回01(不含1)的浮点数,乘以80后是080(不含80),加79得到79~159(不含159),FLOOR()取整后就是79到158的整数,和你要的79-80范围完全不匹配。

正确写法分两种场景:

  • 场景1:生成79到80之间的浮点数(如79.23、79.99等)
    不需要FLOOR(),直接用:

    UPDATE tableName SET columnName = 79 + RAND();
    

    注:RAND()返回01(不含1),所以结果是7980(不含80)的浮点数,若需包含80,可改为79 + RAND() * 1.0000001(避免因精度问题取不到80)。

  • 场景2:仅随机生成79或80两个整数
    用FLOOR()控制只取0或1,再加79:

    UPDATE tableName SET columnName = 79 + FLOOR(RAND() * 2);
    

    解释:RAND()*2生成0~2(不含2)的浮点数,FLOOR()后得到0或1,加79正好是79或80。

额外排查点:

  • 确认tableName和columnName拼写正确,列的数据类型为数值型(INT、FLOAT、DECIMAL等)
  • 执行语句后查看影响行数,若为0,要么无匹配记录,要么无更新权限
  • 若使用非MySQL数据库,RAND()函数可能有差异:比如SQL Server仍用RAND(),Oracle需用DBMS_RANDOM.VALUE(79,80)

内容的提问来源于stack exchange,提问作者FIFA PRODUCE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:45:35