我正在使用objective-c创建一个iPhone应用程序。我有sqlite数据库aDB,我想将一些信息插入到另一个sqlite questionsTest中,我也希望在QuestionNumber排序的一列中插入行号。这是我的查询。
`INSERT INTO questionsTest (QuestionNumber, actualAnwser,rowNumber)
SELECT QuestionNumber,
correctAnswer,
( Select (select count(*)
from aDB.Questions AS t2
where t2.QuestionNumber <= t1.QuestionNumber
) AS rowNumber
FROM aDB.Questions t1
order by t1.QuestionNumber
) From aDB.Questions
LIMIT %d OFFSET %d", totalQuestion,QuestionNumber;
答案 0 :(得分:0)
您想要计算有多少行的问题编号小于您要插入的行的问题编号。
然而,这不是查询所说的。它计算有多少行的问题编号小于带有t1
的子查询中第一行的问题编号,这与所插入的行完全无关。
这是一个子查询太多了。只需删除它:
INSERT INTO questionsTest (QuestionNumber, actualAnwser,rowNumber)
SELECT QuestionNumber,
correctAnswer,
( select count(*)
from aDB.Questions AS t2
where t2.QuestionNumber <= t1.QuestionNumber
) AS rowNumber
From aDB.Questions AS t1
LIMIT ? OFFSET ?;
答案 1 :(得分:0)
终于解决了。这就是我做的事情
INSERT INTO questionsTest (QuestionNumber, actualAnwser,rowNumber)
SELECT QuestionNumber,
correctAnswer,
( select count(*)
from (Select * From aDB.Questions LIMIT %d OFFSET %d) AS t2
where t2.QuestionNumber <= t1.QuestionNumber) AS rowNumber
From (Select * From aDB.Questions LIMIT %d OFFSET %d) AS t1 ",
endQuestionNumber,QuestionNumber,endQuestionNumber,QuestionNumber];