使用随机值在MySQL SELECT中生成字段

时间:2013-06-28 14:02:41

标签: sql

我需要使用数据库中不存在的新随机字段从数据库导出数据。 类似的东西:

SELECT field1, field2, rand(1,5) as field3 FROM table

有可能吗?

4 个答案:

答案 0 :(得分:3)

是的,RAND()返回0到1之间的值。使用数学使该数字在您想要的范围内。

MySQL RAND Documentation

答案 1 :(得分:0)

不是MySQL的答案,但可能有用:在SQL Server上,'RAND'函数需要一个必须在行之间不同的种子。因此,一个简单的方法可能是:

SELECT field1, field2, rand(id) as field3 FROM table

这取决于可用的ID,它也只是伪随机的;每次输出相同的field3值。要解决此问题,只需使用基于时间的值增加id,例如使用this post中的技术:

SELECT field1, field2, rand(id + datediff(s, '19700101', getdate())) as field3 FROM table

这将给出介于0和1之间的值,如果需要的话,一些简单的数学可以强制介于1和5之间。

答案 2 :(得分:0)

您可以在MYSQL中使用它: -

SELECT field1,field2,CAST((RAND() * 3) + 1 AS UNSIGNED) as Randomnumber from tablename

它将生成一个范围内的随机数。

答案 3 :(得分:0)

我这样解决了:

CEIL(RAND()* 5)AS field3

谢谢大家!