gpt4 book ai didi

android - 具有 RANDOM() 排序的 DISTINCT

转载 作者:搜寻专家 更新时间:2023-11-01 09:04:11 24 4
gpt4 key购买 nike

我正在创建基于内置 SQLite 的 Android 国家/地区测验。其中一项任务是为给定国家选择正确的大陆(从 4 个选项中)。我使用以下数据库结构:

continents: ID | name
countries: ID | continent (foreign key) | name | capital

App 选择 4 个随机行并以这种方式返回 Cursor:

return db.rawQuery("SELECT country.name, continent.name FROM "+COUNTRIES_TABLE_NAME+" country LEFT JOIN "+CONTINENTS_TABLE_NAME+" continent ON country.continent = continent.id ORDER BY RANDOM() LIMIT 4", null);

问题是什么:SQLite 可以随机选择来自同一大陆的国家,然后我有两个或更多相同的答案。我想通过添加 DISTINCT 来避免这个问题:

SELECT country.name, DISTINCT continent.name...

然后我得到一个错误(可能是因为语法)。那我该怎么办?

最佳答案

也许不是最漂亮的 SQL,但这应该使用一个 SELECT 来获得 4 个不同的大陆,另一个在每个大陆中获得一个随机国家;

SELECT 
(SELECT name FROM countries c WHERE c.continent=con.id
ORDER BY RANDOM() LIMIT 1) name,
con.name
FROM (SELECT id,name FROM continents ORDER BY RANDOM() LIMIT 4) con

SQLFiddle here (SQLfiddle在SQLite WebSQL中调用RANDOM有问题,不要让它切换)

关于android - 具有 RANDOM() 排序的 DISTINCT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13182965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com