SQLite Random()在ORDER BY中排序不正确

利马夜鹰

我的SQLite查询似乎从规定的“ ORDER BY”子句中返回结果。当我运行以下命令时,第三列给出的是我想要的随机值,但是ORDER BY似乎被忽略了。结果集似乎是随机排序的。

// frequency is an int of either 5, 10, or 15
String query = "SELECT id, name, ABS( RANDOM() % frequency ) FROM person ORDER BY 3"

SQLiteDatabase database = this.getReadableDatabase();
Cursor cursor = database.rawQuery(query, null);

返回类似:

id    name    (random)
------------------------------
16    Joe     1
 4    Jack    0
67    Jane    7
23    Bob     3

我尝试了许多变体,包括以下内容,但所有结果都相似:第三列上未排序的行:

"SELECT id, name, (RANDOM() % frequency) AS myRand FROM person ORDER BY myRand"
id    name    myRand
------------------------------
23    Bob     2
16    Joe     1
67    Jane    -4
 4    Jack    0

要么

"SELECT id, name, CAST(ABS( RANDOM() % frequency ) AS TEXT) AS myRand FROM person ORDER BY myRand"

id    name    myRand
------------------------------
23    Bob     "1"
16    Joe     "2"
67    Jane    "1"
 4    Jack    "5"

无奈之下,我什至尝试了...

"SELECT id, name, 'A' || CAST(ABS( RANDOM() % frequency ) AS TEXT) AS myRand FROM person ORDER BY myRand"
id    name    myRand
------------------------------
 4    Jack    "A9"
23    Bob     "A3"
67    Jane    "A8"
16    Joe     "A2"

当然,第三列的实际结果值对于每次运行来说都是不同的,但是第三列上缺少排序是一致的。为什么结果不按第三列排序?

为什么结果不按第三列排序?

因为该列是一个出于目的而重新计算表达式,所以会ORDER BY产生不同的随机值。

抱歉,目前还无法想到在每行上保留随机顺序值的实用方法。考虑更改您的要求-ORDER BY RANDOM()仍然无法在大型数据集上很好地执行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有ORDER BY的MariaDB ROW_NUMBER排序不正确

来自分类Dev

在SQLITE中使用带种子的ORDER BY random()

来自分类Dev

Rails插入不正确的`order`语句

来自分类Dev

sqlite3 中提供的绑定不正确

来自分类Dev

Python-sqlite异常“靠近s的错误”-我的sqlite语句不正确吗?

来自分类Dev

关键字“ ORDER”附近的语法不正确

来自分类Dev

插入查询中'order'附近的语法不正确

来自分类Dev

mysql order by agregate 函数工作不正确

来自分类Dev

SSRS排序不正确

来自分类Dev

Lodash排序不正确

来自分类Dev

JXTable排序不正确

来自分类Dev

TreeMap的不正确排序

来自分类Dev

Sorted()排序不正确

来自分类Dev

选择排序不正确

来自分类Dev

排序顺序不正确

来自分类Dev

MySQL 不正确的排序

来自分类Dev

Python sqlite3模块在插入记录时返回不正确的rowid值

来自分类Dev

C#到sqlite输入字符串格式不正确

来自分类Dev

SQLite3通过变量更新ERROR提供的绑定数不正确

来自分类Dev

导出到CSV sqlite3 Python后数据显示不正确

来自分类Dev

Python Sqlite3 executemany中的绑定数不正确

来自分类Dev

PDO + PHP + SQLITE + PRINT +'ME'=表结果不正确,不是预期的结果

来自分类Dev

“提供的绑定数量不正确” cPython 3.5 SQLite3 VS15

来自分类Dev

从sqlite db文件(Android)转换了不正确的formatted.csv文件

来自分类Dev

冒泡排序不正确蟒排序

来自分类Dev

变量不正确的排序表

来自分类Dev

Powershell不正确的日期排序

来自分类Dev

优先队列排序不正确

来自分类Dev

R中的排序不正确