繁体   English   中英

MYSQL表中的1到MAX值之间的随机值

[英]MYSQL Random value between 1 and MAX value in Table

我需要一些有关MySQL中随机变量的帮助。 我希望它从表姓氏中选择一个介于1和最大值之间的随机值。 解决方案使我难以捉摸。

 SET id = ROUND(RAND()*((SELECT COUNT(*) FROM surnames)-1)+1);                  
 SET surnameValue = (SELECT asurname FROM surnames WHERE surname_id = id);

谢谢!

我不确定是否需要一个值或每行一个值。 因此,我将向您展示两种解决方案。 我还要假设您想要一个随机整数。

现在,由于我看不到表格,因此将“ valueField”标记为定义最大值的列。 “ primaryKeyField”是您可以在其中将表与其自身连接的字段。

如果您想要一个单一值,这是一个解决方案...

SELECT (FLOOR( 1 + RAND( ) * max(valueField) )) AS value
FROM surnames

如果您希望为所选的每一行都设置一个值,这是一个解决方案...

SELECT (FLOOR( 1 + RAND( ) * `max` )) AS value
FROM surnames s
INNER JOIN (SELECT primaryKeyField, max(valueField) as `max`
            FROM surnames 
            GROUP BY valueField) r ON r.primaryKeyField = s.primaryKeyField

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM