Java Android-检查数据库中是否存在行
我创建了一个方法,应用程序在其中检查数据库中是否存在数字:Java Android-检查数据库中是否存在行,java,android,sqlite,Java,Android,Sqlite,我创建了一个方法,应用程序在其中检查数据库中是否存在数字: Cursor player = playerDatabase.rawQuery("select * from playerTable where playerNumber ="+number,null); try { if (player.getCount() >= 0) { player.close(); return true; } els
Cursor player = playerDatabase.rawQuery("select * from playerTable where playerNumber ="+number,null);
try {
if (player.getCount() >= 0) {
player.close();
return true;
}
else{
return false;
}
}finally {
if(player != null){
player.close();
}
}
但问题是,这总是真的吗?我之所以这样使用它,是因为前面关于堆栈溢出的回答。
检查搜索查询是否返回行/检查此数字是否存在的最佳方式是什么 这是查找行是否存在的最有效方法
SELECT EXISTS(SELECT 1 FROM playerTable WHERE playerNumber="Here comes the player number");
如果表中有带playerNumber的行,它将返回1;如果表中没有行,它将返回0。虽然我不知道这个问题的完美答案,但我通常会在查询中添加限制
限制1
。这样,引擎将能够在第一次(可能只有可能)命中后退出,而不是遍历所有条目。如果列设置为唯一,则这可能不相关,但您永远不知道。:)这是一个逻辑错误,您说您只想检查数字是否存在,但您使用大于或等于零而不是大于零将此如果(player.getCount()>=0)
更改为如果(player.getCount()>0)
您能提供DB的数据类型定义和“player.getCount()”的代码吗方法。@Xenolion我确实尝试过这个方法,但如果行存在它就不起作用。您使用的是“=”这就是为什么它总是返回true的原因,谢谢,我将对此进行详细说明go@YassarHaq试试看,别忘了在playerTable.playerNumber上创建索引。当你说创建索引时,你是什么意思?你能提供一些关于这方面的文档/例子吗。此外,尝试了这个方法,看起来效果不错。Thanksher是什么索引以及如何创建它。不要在没有阅读的情况下使用随机索引命令。