缓慢的Android应用程序...如何限制SQL查询

Lor*_*mer 0 sql android

我正在开发的应用程序开始变得迟钝.它变得迟钝的原因之一是应用程序的一部分存储gps坐标.我查找了如何限制SQL查询中的记录数.我找到了这个.当我在我的代码中输入命令限制时,我收到错误.这是我尝试过的代码:

return mDb.query(DATABASE_TABLE, new String[]{KEY_ROWID, KEY_TITLE, 
                KEY_BODY, KEY_LAT, KEY_LONGI, KEY_DATE}, null, null, null, null,LIMIT 1000);
Run Code Online (Sandbox Code Playgroud)

Mak*_*ibo 8

由于这个问题仍未提供适当的解决方案,我想清理一下.

user658042和Jan Dragsbaek所说的大部分内容都是正确的.有一个重载方法,为你的limit子句提供第8个参数,它也必须是一个字符串.

由于LIMIT可以使用或不使用偏移量,因此可以在SQL中将其写入

LIMIT 1000 // limit to 1000 entries

或带偏移量

LIMIT 5000, 1000 // limit to 1000 entries with an offset of 5000

主要是,这就是为什么查询方法中的limit参数必须作为字符串传递的原因.

总而言之,只需省略限制参数中的文本"LIMIT"就可以了:)

// limit to 1000 entries
return mDb.query(DATABASE_TABLE, 
                 new String[]{ KEY_ROWID, KEY_TITLE, KEY_BODY, KEY_LAT, 
                 KEY_LONGI, KEY_DATE}, 
                 null, null, null, null, null, "1000"); 

// limit to 1000 entries with an offset of 5000
return mDb.query(DATABASE_TABLE, 
                 new String[]{ KEY_ROWID, KEY_TITLE, KEY_BODY, KEY_LAT, 
                 KEY_LONGI, KEY_DATE}, 
                 null, null, null, null, null, "5000, 1000");
Run Code Online (Sandbox Code Playgroud)