0

我需要使用数据库中不存在的新随机字段从数据库中导出数据。就像是:

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

有可能的?

4

4 回答 4

3

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

MySQL 兰德文档

于 2013-06-28T14:06:58.540 回答
0

不是 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 之间。

于 2013-06-28T14:08:45.737 回答
0

您可以在 MYSQL 中使用它:-

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

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

于 2013-06-28T14:09:04.133 回答
0

我这样解决了:

CEIL( RAND( ) *5 ) AS 字段3

谢谢你们!

于 2013-06-28T14:25:08.063 回答