小编Rob*_*key的帖子

SQLiteDatabase.execSQL无法正常工作INSERT INTO查询

我正在移植适用于Android操作系统的iOS代码.我执行一堆查询,将查询结果插入临时表.当所有查询完成后,我将临时表中的所有结果都捕获到我自己创建的对象集合中.我正在使用临时表,而不是直接选择集合,因为我相信它执行得更快,或者至少在iOS端执行.我的问题是execSQL()没有像我期望的那样工作,这里是代码:

db.execSQL("CREATE TEMPORARY TABLE SearchResults(Name text);");
db.execSQL("INSERT INTO SearchResults (Name) SELECT Name FROM ProductNames WHERE NameLower MATCH '" + termLowerCase + "*';");
db.execSQL("INSERT INTO SearchResults (Name) SELECT Name FROM BrandNames WHERE NameLower MATCH '" + termLowerCase + "*';");
Run Code Online (Sandbox Code Playgroud)

当我执行这段代码时,我只从第一次使用INSERT的execSQL()调用中得到一行.我知道ProductNames表中有多个结果应该与我的术语匹配,我知道BrandNames表中有数百行应该与我的术语相匹配.如果我将代码更改为:

Cursor cursor = db.rawQuery("SELECT Name FROM ProductNames WHERE NameLower MATCH '" + termLowerCase + "*'", null);
cursor.moveToFirst();
while (!cursor.isAfterLast())
{
    resultSet.add(cursor.getString(0));
    cursor.moveToNext();
}
cursor.close();
cursor = db.rawQuery("SELECT Name FROM BrandNames WHERE NameLower MATCH '" + termLowerCase + "*'", null);
cursor.moveToFirst();
while …
Run Code Online (Sandbox Code Playgroud)

sqlite android

5
推荐指数
1
解决办法
2696
查看次数

标签 统计

android ×1

sqlite ×1