java sql 随机行打印
java sql random row print
我尝试打印随机行但我不能,我该如何打印随机行?
-数据库名测试
-table名字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 服务器语法(q.v。here)。
我尝试打印随机行但我不能,我该如何打印随机行?
-数据库名测试 -table名字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 服务器语法(q.v。here)。