从mysql数据库中的N行中选择相同的值

时间:2011-11-28 04:06:22

标签: java mysql

我是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());
        }

问题是这段代码只返回搜索的第一个值,而不是从数据库中选择其余的值。可以请一些人指出我在这里做错了什么。任何帮助将不胜感激。感谢。

2 个答案:

答案 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