我需要使用数据库中不存在的新随机字段从数据库中导出数据。就像是:
SELECT field1, field2, rand(1,5) as field3 FROM table
有可能的?
我需要使用数据库中不存在的新随机字段从数据库中导出数据。就像是:
SELECT field1, field2, rand(1,5) as field3 FROM table
有可能的?
是的,RAND()
返回一个介于 0 和 1 之间的值。使用数学使该数字在您想要的范围内。
不是 MySQL 的答案,但可能有用:在 SQL Server 上,“RAND”函数需要一个在行之间必须不同的种子。因此,一个简单的方法可能是:
SELECT field1, field2, rand(id) as field3 FROM table
这取决于可用的 ID,而且它也只是伪随机的;每次将输出相同的 field3 值。要解决这个问题,只需将 id 增加一个基于时间的值,例如使用本文中的技术:
SELECT field1, field2, rand(id + datediff(s, '19700101', getdate())) as field3 FROM table
这将给出一个介于 0 和 1 之间的值,如果需要的话,一些简单的数学可以强制它介于 1 和 5 之间。
您可以在 MYSQL 中使用它:-
SELECT field1,field2,CAST((RAND() * 3) + 1 AS UNSIGNED) as Randomnumber from tablename
它将生成一个范围内的随机数。
我这样解决了:
CEIL( RAND( ) *5 ) AS 字段3
谢谢你们!