【问题标题】:java sql random row printjava sql随机行打印
【发布时间】:2017-07-21 05:57:25
【问题描述】:

我尝试打印随机行但我不能,我如何打印随机行?

-数据库名称测试 -表名user_data

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class sqlconnect {
public static void main(String args[]) {
try {

Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root",""); 
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("select * from user_data ORDER BY RANDOM() OFFSET 0 ROWS FETCH NEXT 1 ROW ONLY");

while(rs.next())

System.out.println(rs.getString(1)); 
con.close();
} 
catch (Exception e){ System.out.println(e);} 
}
}

我试试这个代码,这是错误信息

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OFFSET 0 ROWS FETCH NEXT 1 ROW ONLY' at line 1

【问题讨论】:

    标签: java database wamp


    【解决方案1】:

    如果您只想打印随机行,请使用LIMIT 1 告诉 MySQL 将结果集限制为一条记录:

    SELECT * FROM user_data ORDER BY RAND() LIMIT 1
    

    代码:

    ResultSet rs = stmt.executeQuery("SELECT * FROM user_data ORDER BY RAND() LIMIT 1");
    

    您对FETCH NEXT 的使用似乎是SQL Server 语法(q.v. here)。

    【讨论】:

    • 我认为在 MySQL 中应该是 RAND() 而不是 RANDOM()
    • @Beginner 你让我想知道初学者到底是谁在这里:-)
    • 构建成功但打印此错误 com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: FUNCTION test.RANDOM 不存在
    • 是的,我怎么知道打印了哪一行?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多