添加ORDER BY时,sqlite查询挂起

时间:2014-01-09 08:11:04

标签: sqlite sql-order-by

我从sqlite数据库中获取了一些数据,我的查询工作正常,直到我添加order by子句

我的查询结构如下

  

SELECT * FROM TESTI WHERE TESTO LIKE'%test%'COLLATE NOCASE LIMIT 100 OFFSET 0

这个运行正常,我在数据库的前100行获得包含单词test的所有记录,但是当我以这种方式添加ORDER BY子句时

  

SELECT * FROM TESTI WHERE TESTO LIKE'%test%'COLLATE NOCASE LIMIT 100 OFFSET 0 ORDER BY ID

系统无限期挂起(我必须强制关闭)

表TESTI有35000行我如何通过id订购而不挂起所有系统?

1 个答案:

答案 0 :(得分:2)

您有SQL语法错误。 ORDER BY应该出现在LIMITOFFSET之前,如下所示:

SELECT * FROM TESTI WHERE TESTO LIKE '%test%' COLLATE NOCASE ORDER BY ID LIMIT 100 OFFSET 0

为什么它挂起不是由于SQL而是你的程序运行它。可能它无法从语法错误中恢复。