0

我在 MySQL 中看到了一些解决方案,但似乎找不到任何适用于 SQLite 的解决方案。我正在尝试获取数据库中 7 个最新条目的值。我知道如何按日期对它们进行排序,但由于某种原因,我找不到返回给定数量的语法。
这是查询,使用 JDBC

PreparedStatement get_recent_id = conn.prepareStatement("SELECT * FROM workout_log ORDER BY t desc");

这将使他们按顺序返回,但我在想SELECT 7 *....会起作用,但这是我得到的错误 Exception in thread "main" java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "FROM": syntax error) at org.sqlite.DB.newSQLException(DB.java:383) at org.sqlite.DB.newSQLException(DB.java:387) at org.sqlite.DB.throwex(DB.java:374) at org.sqlite.NativeDB.prepare(Native Method) at org.sqlite.DB.prepare(DB.java:123) at org.sqlite.PrepStmt.<init>(PrepStmt.java:42) at org.sqlite.Conn.prepareStatement(Conn.java:404) at org.sqlite.Conn.prepareStatement(Conn.java:399) at org.sqlite.Conn.prepareStatement(Conn.java:383) at WeeklyReport.main(WeeklyReport.java:38)

4

3 回答 3

2
SELECT * FROM workout_log ORDER BY t desc Limit 7;

另请注意,使用*可能会导致下游出现一些问题。如果您的列更改顺序或添加新列怎么办?考虑列出您的字段。

于 2013-05-11T02:01:24.940 回答
1

我认为这会有所帮助。利用limit

SELECT * FROM workout_log ORDER BY t desc limit 7
于 2013-05-11T02:02:04.530 回答
0

仅添加limit 0,7

查询是:-

SELECT * FROM workout_log ORDER BY t desc limit 0,7;
于 2013-05-11T02:11:20.290 回答