如何在 sql db 中获取结果项数?
How can I get result item count in sql db?
我试图在数据库的 name
列中找到 john
,但我找不到。
我正在尝试的是:
String st="SELECT name FROM mytable";
ResultSet rs = stmt.executeQuery(st);
int icount = 0 ;
if (rs.equals("john")) {
while (rs.next()) {
icount++;
}
}
jtext1.setText(String.valueOf(icount));
String st="SELECT name FROM mytable";
ResultSet rs = stmt.executeQuery(st);
int icount = 0 ;
while (rs.next()) {
if (rs.getString("name").equals("john")) {
icount++;
}
}
jtext1.setText(String.valueOf(icount));
使用以下代码:
while(rs.next()){
String name = rs.getString("name");
if("john".equals(name))
icount++;
}
jtext1.setText(String.valueOf(icount));
您正在尝试检查 ResultSet
对象是否等于 john
字符串 - 当然它总是 false
。你需要这样的东西:
String query = "SELECT name FROM mytable";
ResultSet rs = stmt.executeQuery(query);
int johnCount = 0;
while (rs.next()) {
String name = rs.getString("name");
if ("john".equalsIgnoreCase(name)) {
johnCount++;
}
}
注意 equalsIgnoreCase
方法 - 我认为它更适合您的情况。不要忘记在 finally
块中关闭 ResultSet
、Statement
和 Connection
或使用 try-with-resources
.
但如果您想在 table 中算上 Johns,最好只使用 SELECT COUNT(*) FROM mytable WHERE name = 'john'
。请注意,这是查询中的 case-sensitive 条件。
您需要用
遍历每一行
while (rs.next) {....
你需要把值拿出来像这样比较
String name = rs.getString(1);
If (name.equals("john")) {....
另一种选择是更改任务以进行计数,这样效率更高。
select count(name) from myTable where name = 'john';
另一种方式....
int count = 0;
String query = "SELECT COUNT(DISTINCT name) AS rCount FROM myTable "
+ "WHERE UPPER(name) LIKE UPPER('JOHN');"
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) { count = rs.getInt("rCount"); }
System.out.println(count);
我试图在数据库的 name
列中找到 john
,但我找不到。
我正在尝试的是:
String st="SELECT name FROM mytable";
ResultSet rs = stmt.executeQuery(st);
int icount = 0 ;
if (rs.equals("john")) {
while (rs.next()) {
icount++;
}
}
jtext1.setText(String.valueOf(icount));
String st="SELECT name FROM mytable";
ResultSet rs = stmt.executeQuery(st);
int icount = 0 ;
while (rs.next()) {
if (rs.getString("name").equals("john")) {
icount++;
}
}
jtext1.setText(String.valueOf(icount));
使用以下代码:
while(rs.next()){
String name = rs.getString("name");
if("john".equals(name))
icount++;
}
jtext1.setText(String.valueOf(icount));
您正在尝试检查 ResultSet
对象是否等于 john
字符串 - 当然它总是 false
。你需要这样的东西:
String query = "SELECT name FROM mytable";
ResultSet rs = stmt.executeQuery(query);
int johnCount = 0;
while (rs.next()) {
String name = rs.getString("name");
if ("john".equalsIgnoreCase(name)) {
johnCount++;
}
}
注意 equalsIgnoreCase
方法 - 我认为它更适合您的情况。不要忘记在 finally
块中关闭 ResultSet
、Statement
和 Connection
或使用 try-with-resources
.
但如果您想在 table 中算上 Johns,最好只使用 SELECT COUNT(*) FROM mytable WHERE name = 'john'
。请注意,这是查询中的 case-sensitive 条件。
您需要用
遍历每一行while (rs.next) {....
你需要把值拿出来像这样比较
String name = rs.getString(1);
If (name.equals("john")) {....
另一种选择是更改任务以进行计数,这样效率更高。
select count(name) from myTable where name = 'john';
另一种方式....
int count = 0;
String query = "SELECT COUNT(DISTINCT name) AS rCount FROM myTable "
+ "WHERE UPPER(name) LIKE UPPER('JOHN');"
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) { count = rs.getInt("rCount"); }
System.out.println(count);