【问题标题】:How to use the LIMIT argument in an SQLite Query with Android如何在 Android 的 SQLite 查询中使用 LIMIT 参数
【发布时间】:2011-06-15 17:21:12
【问题描述】:

我正在尝试使用以下查询按日期获取最新结果。

Cursor cursor = mDb.query(DATABASE_TABLE, new String[] {KEY_DATE, KEY_REPS, 
KEY_WEIGHT}, null, null, null, null, KEY_DATE + "DESC", ???);

我需要使用 limit 参数(我相信),但它需要一个字符串。我尝试创建一个值为“1”的字符串,但这不起作用。我尝试过的其他事情 “1” 限制 1 “限制 1” 限制 1 “限制 1”

另外,如果有人知道一个很棒的参考网站(除了这个),它实际上会向您展示各种 SQL 查询(对于 ANDROID),这将非常有帮助......

编辑 我使用“1”得到的错误......也许限制不是我的问题? 这是错误:android.database.sqlite.SQLiteException:没有这样的列:dateDESC:,编译时:SELECT date,repetitions,weight,FROM TEST ORDER BY dateDESC LIMIT 1

【问题讨论】:

  • 你的错误是你有KEY_DATE + "DESC"而不是KEY_DATE + " DESC",即你缺少一个空格。

标签: android sql limit


【解决方案1】:

Order by id DESC Limit 1:

db.query("table", null, "column=?", new String[]{"value"}, null, null, "id DESC", "1");

【讨论】:

  • DESC表示订单类型...Z-A类型
  • 对,我知道。这就是为什么我在我的代码中有它。因此,它以最高的日期在顶部对其进行排序。你是在告诉我我的代码中的 DESC 语句已经错了吗?
  • 试试这个:Cursor cursor = mDb.query(DATABASE_TABLE, new String[] {KEY_DATE, KEY_REPS, KEY_WEIGHT}, null, null, null, null, KEY_DATE + "DESC", "1") ;你错过了 DESC 之前的一个空格
  • 是的,我自己也想通了。谢谢。
  • 如果有偏移怎么办?基于 0 还是 1?
猜你喜欢
  • 2014-09-02
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
相关资源
最近更新 更多