是否可以从SQLite表中选择随机行,但是使用Android rawquery对行进行随机排序仅返回该行的特定列信息?示例:
表1
C1 Col2 Col3 Col4
1 A B C D
2 E F G H
3 I J K L
4 M N O P
5 Q R S T
6 U V W X
是否可以随机选择1到6之间的行(不包括列C1和C3,因此返回):
J,L或N,P或V,X等...
任何可以完成此操作的原始查询SELECT语句示例?
答案 0 :(得分:1)
这里是一个选项,它假设C1
列确定顺序:
SELECT Col2, Col4
FROM yourTable
WHERE C1 <> (SELECT MIN(C1) FROM yourTable) AND
C1 <> (SELECT MAX(C1) FROM yourTable)
ORDER BY RANDOM()
LIMIT 1;
答案 1 :(得分:1)
您可以使用此查询
SELECT Col2, Col4 FROM yourTable ORDER BY RANDOM() LIMIT 1;
答案 2 :(得分:1)
不建议在Db查询中使用Random,因为如果数据太大,操作可能会非常昂贵。 如果是100行,那么您可能可以做任何您想做的事情。
随机查询遍历整个数据库以生成随机行
相反,您可以分两步进行操作 1)找到行数 2)使用Math.random从1到count-1计算一个随机数; 然后将查询用作:
SELECT column FROM tableName LIMIT $random_number, 1
两者的过程相同,但是要在sql查询中获取随机数,然后再使用Math.random()进行获取,费用很高