2016-12-09 55 views
0

我需要一些关于MySQL中随机变量的帮助。我希望它在表名中选择1和最高值之间的随机值。解决方案避开了我..MYSQL表1中的1和MAX值之间的随机值

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

谢谢!

回答

0

我不确定您是否需要每行的单个值或值。因此,我会告诉你两个解决方案。我也会假设你想要一个随机整数。

现在,因为我没有看到表格,我将标记'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