使用SQLite选择最近值的数量

时间:2013-05-11 01:58:54

标签: sql sqlite

我在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)

3 个答案:

答案 0 :(得分:2)

SELECT * FROM workout_log ORDER BY t desc Limit 7;

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

答案 1 :(得分:1)

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

SELECT * FROM workout_log ORDER BY t desc limit 7

答案 2 :(得分:0)

仅添加limit 0,7

查询是: -

SELECT * FROM workout_log ORDER BY t desc limit 0,7;