我是mysql的新手,我试图从eclipse中的mysql表中选择N行。现在,我想从数据库中选择N行相同的值。我使用以下代码
User user= null;
ArrayList<User> searchedUsers = new ArrayList<User>();
PreparedStatement stmt = null;
ResultSet rs = null;
try {
String authenticationSql;
authenticationSql = "SELECT * FROM users WHERE " + searchIn + " = ?";
log.info(authenticationSql);
stmt = (PreparedStatement) dbConn.prepareStatement(authenticationSql);
stmt.setString(1, searchFor);
rs = stmt.executeQuery();
while (rs.next()) {
user = new User(rs.getString("username"),
rs.getInt("user_type"), OnlineStatus.ONLINE);
searchedUsers.add(user);
}
rs.close();
stmt.close();
} catch (SQLException ex) {
log.error("SQLException: " + ex.getMessage());
log.error("SQLState: " + ex.getSQLState());
log.error("VendorError: " + ex.getErrorCode());
}
问题是这段代码只返回搜索的第一个值,而不是从数据库中选择其余的值。可以请一些人指出我在这里做错了什么。任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
我认为您的COUNT(*)
SELECT
正在对您的搜索结果进行分组。试试没有它
答案 1 :(得分:1)
您不能在此语句中使用count(*)
。
它会给你一些错误,例如Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause