Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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 如何在mysql中通过查询实现haskey()函数_Java_Mysql - Fatal编程技术网

Java 如何在mysql中通过查询实现haskey()函数

Java 如何在mysql中通过查询实现haskey()函数,java,mysql,Java,Mysql,我正在将一个程序从python翻译成java,我正在使用mysql 在某个时刻,如果我有带有特殊密钥的数据,我必须签入我的数据库。 比方说 if(namesTable.haskey(24)) doSoemthing(); 我不需要从数据库中检索到任何数据,我只想看看是否有使用此特殊键的内容。另外,我不想使用COUNT,因为使用COUNT意味着遍历所有数据库,给我一个像248这样的数字,而我只关心是否有 在数据库中找到匹配项后,我希望有东西能尽快给我一个肯定的回答。(我解释了“如果我有带特

我正在将一个程序从python翻译成java,我正在使用mysql

在某个时刻,如果我有带有特殊密钥的数据,我必须签入我的数据库。 比方说

if(namesTable.haskey(24))
   doSoemthing();
我不需要从数据库中检索到任何数据,我只想看看是否有使用此特殊键的内容。另外,我不想使用COUNT,因为使用COUNT意味着遍历所有数据库,给我一个像248这样的数字,而我只关心是否有

在数据库中找到匹配项后,我希望有东西能尽快给我一个肯定的回答。

(我解释了“如果我有带特殊键的数据,请检查我的数据库”,这意味着您正在检查单个表中的单个列是否存在特定值。这似乎是最直接的解释。)

如果需要检查表以查看特定表中是否存在行,以及特定列中是否存在特定值,则最有效的查询可能是:

SELECT 1
  FROM DUAL
 WHERE EXISTS (SELECT 1
                 FROM mytable t
                WHERE t.key = 24
              )
伪表DUAL保证返回不超过一行,并且一旦找到一行,EXISTS子查询将以TRUE“退出”

为了获得最佳性能,您需要一个以key作为前导列的索引,例如

ON mytable (key) 

我建议在应用程序中使用标志,如:

Boolean hasKey = false;
  • 在程序启动时,只需对
    namesTable
    运行一次sql查询,以检查它是否具有特殊键,并根据该查询结果设置
    hasKey
    。从那时起,您无需再次检查数据库,只需使用:

    如果(hasKey) { sososomething(); }

  • 名称表
    中添加/更新记录时,检查它是否有特殊键,如果有,则将
    hasKey
    标志设置为
    true


  • 如果表已正确索引,则查询现有键不会“遍历所有数据库”。如
    从key=value的表中选择1并检查结果数。