gpt4 book ai didi

android - 在 sqlite 查询中如何获取具有所需值的特定行和列

转载 作者:行者123 更新时间:2023-11-30 02:52:17 25 4
gpt4 key购买 nike

我正在尝试构建一个测验应用程序,数据库中的条目如下所示

id | term | synonym 1 | synonym 1 answered | synonym 2 | synonym 2 answered | ....
----------------------------------------------------------------------------------
1 | read | recite | Yes | study | No |
2 | work | effort | No | labour | Yes |

想法是一次显示一个同义词。选择下一个同义词后,使用同义词旁边的列将前一个同义词标记为已回答

对于选择单词的逻辑,我使用 Collection.shuffle() 函数来获取随机行和随机列,查询数据库以查看其回答的列是否为“否”。如果"is",我将重复洗牌直到得到“否”。

为了知道整个表中是否至少有一个条目在任何“已回答”列中有一个“否”,我对已回答的列使用了 OR 子句(以确保所有同义词都没有回答)

所以我的应用程序进行了大量迭代以获得所需的词,这绝对是非常糟糕的方式。

我无法想出一种方法让 sqlite 查询返回一个随机的行和列,其中包含单词“No”。如果我能得到结果为“否”的列名,我就可以去掉“已回答”一词,并在一行中得到相关的同义词列,然后用大量的 Java 代码显示它。

有哪位大侠能指教一下并给出解决方案吗?我需要整个表中单词“No”的结果匹配项的列名和 rowid。而且它必须是随机的

编辑:此处给出的场景是为了简单起见。实际的应用程序处理梵文语法,需要我计划的那种实现。我需要获取列的“名称”和获得“否”的行的“id”。在实现中,我不会使用"is"和“否”。所有术语的列数都是固定的。为简单起见,我举了这个例子。

最佳答案

我会推荐以下内容:

首先规范化你的表结构。将有两个表:TermsSynonyms

Terms 表将包含 IdTermName

Synonyms表中会有SynonymId, Name, Answered TermId 因此,您可以在此处通过 TermId 跟踪同义词。

通过这种方式,您可以轻松地查询特定术语的同义词,例如:

SELECT * FROM Synomyms WHERE TermId = 1 AND Answered = "No"

希望对你有帮助

关于android - 在 sqlite 查询中如何获取具有所需值的特定行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23948966/

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