【发布时间】:2017-08-29 16:47:03
【问题描述】:
对于具有 ID 和类别列的表,我们将有一个具有 5 个值的类别域,例如 A、B、C、D 和 E。
我们正在使用 SQLite。
我们的目标是有一个查询,该查询会随机选择并随机排序(在每组 5 行中)插入许多插入的分组行,例如
身份证猫 --- --- 076 C 第753章 503一 081乙 第335章 475乙 第643章 995 一个 105 E 第549章 第553章 第871章 第064章 720 天 119 一个上面的例子展示了 3 组 os 结果,它们的行是随机选择的,其排序也是随机的。
目前我们使用 5 个查询(每个类别一个)提取结果,然后对应用程序代码中的所有内容进行排序。
SELECT * FROM table WHERE cat = 'A' ORDER BY RANDOM() LIMIT 3;
如果有人通过使用单个查询提出更好的解决方案,我们将不胜感激。
【问题讨论】:
-
您可以使用UNION子句向服务器发出单个查询,您可以找到一个例子here@rubens-amaral
-
感谢@DanIonescu 的建议,但是我的折叠随机要求呢?很抱歉,但使用 UNION 我无法弄清楚如何实现这一点。
-
您是否希望 3 组结果的类别每次都是唯一的,或者可能 B、D、A、C、B 是可以接受的@rubens-amaral?
-
是的,每个组都应该有唯一的类别,所以 B,D,A,C,B 是不可接受的
标签: sql sqlite random group-by sql-order-by