簡體   English   中英

java sql隨機行打印

[英]java sql random row print

我嘗試打印隨機行,但我不能,如何打印隨機行?

-數據庫名稱測試-表名稱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

如果只想打印隨機行,則使用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語法( 此處 qv)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM