如何向sqlite添加行号

时间:2016-06-26 01:32:51

标签: ios objective-c sqlite

我正在使用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;

但行号全部插入1,如何插入行号? 非常感谢你 enter image description here

2 个答案:

答案 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];