我需要使用数据库中不存在的新随机字段从数据库导出数据。 类似的东西:
SELECT field1, field2, rand(1,5) as field3 FROM table
有可能吗?
答案 0 :(得分:3)
是的,RAND()
返回0到1之间的值。使用数学使该数字在您想要的范围内。
答案 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
谢谢大家!