Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过SQLite中的混凝土id正确选择随机行_Java_Android_Sql_Sqlite - Fatal编程技术网

Java 如何通过SQLite中的混凝土id正确选择随机行

Java 如何通过SQLite中的混凝土id正确选择随机行,java,android,sql,sqlite,Java,Android,Sql,Sqlite,我一直在开发一个Android应用程序,我正在使用SQLite作为问答数据库。一切都很好,但由于我只知道SQL的基本知识,我不知道做我想做的事情的最佳方法是什么 该应用程序基本上是一个15个问题的测试,每个问题都有一个类别(有6个类别)。该应用程序必须从每个类别中至少问一个问题,因为如果没有,最后的结果将显示一个从未回答过的类别的0分,这毫无意义 我实际上可以让它使用以下代码: Question q = null; for (int i = 0; i < NUM_CATEGORIES; i

我一直在开发一个Android应用程序,我正在使用SQLite作为问答数据库。一切都很好,但由于我只知道SQL的基本知识,我不知道做我想做的事情的最佳方法是什么

该应用程序基本上是一个15个问题的测试,每个问题都有一个类别(有6个类别)。该应用程序必须从每个类别中至少问一个问题,因为如果没有,最后的结果将显示一个从未回答过的类别的0分,这毫无意义

我实际上可以让它使用以下代码:

Question q = null;
for (int i = 0; i < NUM_CATEGORIES; i++) {
  q = dbHelper.getQuestion(question_ids, Integer.toString(i));
  questions.add(q);

  listAnswers = dbHelper.getAnswersFromQuestion(q.get_Id());
  all_answers.add(listAnswers);
}
其中category是我前面提到的字符串参数,它表示要获取的问题的实际类别

但我遇到的问题是,我总是提取第一个有这个类别的问题,我想随机提取一个问题

例如,如果我有以下问题:

问题:问题1,类别:0

问题:问题2,类别:0

问题:问题3,类别:1

问题:问题4,类别:1

我总是从类别0中得到“问题1”,从类别1中得到“问题3”。很明显,我想随机得到一个,但不总是同一个

我怎么能质疑这个想法?我能做些什么来获取一个关于该类别的问题,但不总是第一个关于它的问题吗


非常感谢

您需要一个随机行,因此:

SELECT q.*
FROM Question q
WHERE q.category = " + category + "
ORDER BY random()
LIMIT 1;

谢谢!工作得很有魅力!
SELECT q.*
FROM Question q
WHERE q.category = " + category + "
ORDER BY random()
LIMIT 1;