检查数据库中是不是存在行,并返回布尔值

Posted

技术标签:

【中文标题】检查数据库中是不是存在行,并返回布尔值【英文标题】:Check if row exists in db, and return boolean检查数据库中是否存在行,并返回布尔值 【发布时间】:2020-11-11 23:53:17 【问题描述】:

我有这个函数,它接受一个名称并在数据库中检查是否存在具有该名称的行。但是,我不知道如何确定该行是否存在。

我现在的代码是

public static boolean rowExists(String player) throws SQLException 
    String sql = "SELECT EXISTS(SELECT * FROM currency WHERE name='"+player+"');";
    Bukkit.broadcastMessage(player);
    Statement stmt = con.createStatement();
    
    ResultSet up = stmt.executeQuery(sql);
    boolean nut = up.next();
    Bukkit.broadcastMessage("nut: " + nut + "  ");

    return nut;

nut 是布尔值,其中 true 表示条目存在,而 false 则不存在。 目前 nut 始终返回 true,无论该行是否存在。

【问题讨论】:

【参考方案1】:

简单的查询更好:

SELECT 1 FROM currency WHERE name=%s LIMIT 1

如果存在则返回单行 1,如果不存在则返回 0 行。

还要使用准备好的语句来避免 SQL 注入。

【讨论】:

以上是关于检查数据库中是不是存在行,并返回布尔值的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何检查列表是不是包含数值并返回布尔值?

检查整数是不是为 0 并返回布尔值的简短方法

检查值是不是存在于数据库行之一中

检查数组中的所有值是不是为真,然后返回一个真布尔语句(javascript)[重复]

spark - scala - 如何检查配置单元中是不是存在表

如何检查任何多个“错误”布尔值是不是为真?