我在MySQL中需要一些随机变量的帮助。我希望它选择1和表姓氏中最高值之间的随机值。解决方案让我不知道......
SET id = ROUND(RAND()*((SELECT COUNT(*) FROM surnames)-1)+1);
SET surnameValue = (SELECT asurname FROM surnames WHERE surname_id = id);
谢谢!
答案 0 :(得分: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