sqlite - 需要帮助在 SQLite 中添加随机 float

标签 sqlite random

我正在尝试将随机浮点数添加到 SQLite 中整个列的现有值

将数字添加到现有的应该不难,UPDATE myTable SET Column1=Column1+1应该管用。如果我是正确的,它将获取 column1 中的每个值并将其加 1。

问题是得到随机数,我的目标是有类似的东西

UPDATE mytable SET Column1=(Column1 + (RAND Between 0.5 AND 0.8));

所以每一行都添加了一个不同的随机浮点数,该随机浮点数是在添加到它的 2 个浮点数之间生成的。

我的问题是我在 SQLite 下找到的唯一引用 random 是 random 函数生成一个整数。

最佳答案

documentation说:

The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807.



因此,要获得介于 -1 和 1 之间的数字,您必须将返回值除以 9223372036854775808。

要获得介于 0 和 1 之间的数字,请除以 2×9223372036854775808,然后加上 ½。

要获得其他范围,请适当缩放并添加偏移量:
UPDATE MyTable
SET Column1 = Column1 + (random() / 18446744073709551616 + 0.5) * 0.3 + 0.5;

关于sqlite - 需要帮助在 SQLite 中添加随机 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23785143/

相关文章:

sql - 如何通过一个查询获取数据库的总行数

Android:如何使用 SugarORM 搜索数据

c++ - 随机复数

无法将 int 转换为 int。数组 C

sqlite - 无法解析调用者 sqlite3_bind : Do not understand this error in my Perl 6 script

sql - 查询具有多列的相同查找表

java - 带有 IS NULL 的可选参数查询在 Java Sqlite 中无法按预期工作

c - 为什么 rand() + rand() 产生负数?

haskell - 如何在haskell中使用带有fmap的随机生成器使用函数?

java - Java 中的随机化