检查数据库中是不是存在行,并返回布尔值
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 注入。
【讨论】:
以上是关于检查数据库中是不是存在行,并返回布尔值的主要内容,如果未能解决你的问题,请参考以下文章
检查数组中的所有值是不是为真,然后返回一个真布尔语句(javascript)[重复]