Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-检查数据库中是否存在行_Java_Android_Sqlite - Fatal编程技术网

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是什么索引以及如何创建它。不要在没有阅读的情况下使用随机索引命令。