我从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订购而不挂起所有系统?
答案 0 :(得分:2)
您有SQL语法错误。 ORDER BY
应该出现在LIMIT
和OFFSET
之前,如下所示:
SELECT * FROM TESTI WHERE TESTO LIKE '%test%' COLLATE NOCASE ORDER BY ID LIMIT 100 OFFSET 0
为什么它挂起不是由于SQL而是你的程序运行它。可能它无法从语法错误中恢复。