对于所有数据库来说,一般情况下使用哪个索引是由数据库来自动分析指定的,你写一个sql,只要用到该id列。数据库就会按照该列上的索引来查找数据。不是说你写一个按索引来查找的sql语句。(不绝对,sql可以指定索引,这属于高级语法。应该和你所描述的没关系。)而且一般情况下对一个表的一次 *** 作,不会同时用到两个索引的(位图索引除外)。
SqLiteDatabase查询并获取里面的数值的实现,案例(查询下图表格里面不同的name对应的value值)代码如下:
public int cgQueryItemValue(String name){
Loge(TAG, "hongyan:cgQueryItemValue name=" +name);
try {
Cursor c =mSqLiteDatabasequery(ConstENG_STRING2INT_TABLE,
new String[] {
ConstENG_STRING2INT_NAME,ConstENG_STRING2INT_VALUE
},
ConstENG_STRING2INT_NAME + "= \'" + name + "\'", null, null, null, null);
//上述的Cursor c 获取到的是指定name对应的一行(只包括指定列)也就是下图这样的:if (c !=null) {
cmoveToFirst();//必须写,否则读不到数据,将Index移动到第一位上
int valueIndex=cgetColumnIndexOrThrow(ConstENG_STRING2INT_VALUE);
//如上图,valueIndex= 1;
int value =cgetInt(valueIndex);
//注意value值是什么类型用合适的get,如果是String就得用getString!!否则会有异常
cclose();
return value;
}
} catch (Exception e) {
return 0;
}
return 0;
}
protected int cgQueryAutoTestFailCount()
{
int failCount = 0;
int result =0;
for(String itemName:ConstCG_DEFAULT_AUTO_TEST_ITEMS_NAME)
{
result =mEngSqlitecgQueryItemValue(itemName);
//Logd(TAG, "hongyan: cgQueryAutoTestFailCount item test result = " + result);
if(result== 0)
{
failCount++;
}
}
Logd(TAG, "hongyan: cgQueryAutoTestFailCount failCount = " + failCount);
return failCount;
}
sqlite3_int64 sqlite3_last_insert_rowid(sqlite3);
或者条用这个函数
或者执行如下语句
select last_insert_rowid() from 表名
以上就是关于sqlite3 给ID列创建了索引[ID_index],我想要根据ID的索引搜索得到msg的数据,语句该怎么写全部的内容,包括:sqlite3 给ID列创建了索引[ID_index],我想要根据ID的索引搜索得到msg的数据,语句该怎么写、怎么后台查询SQLiteDatabase中的值、请问andorid里怎么得知自己在sqlite中刚刚插入的自增长id是多少等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)