2016-12-09 83 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