【问题标题】:SELECT rows from SQLite Database where condition met with limit return rows with smallest IDs从 SQLite 数据库中选择条件满足限制的行,返回具有最小 ID 的行
【发布时间】:2018-10-29 17:28:40
【问题描述】:

我有一个数据库,其中有一个名为id 的主键整数自动增量列和一个条件标志列,称之为condition,它是一个整数。 我希望能够选择给定数量的行N 其中conditon=1。这很容易查询(例如N=10):

SELECT data FROM table_name WHERE condition=1 LIMIT 10;

但是我想保证我收到的行也是condition=1 的完整行集中具有最小值id 的行。例如,如果 id 介于 1 和 20 之间的行具有 condition=1,我希望我的查询能够保证返回带有 id=1 - 10 的行。

我的理解是 ORDER BY 在查询后完成,所以我不认为包含 ORDER BY id 可以保证这一点。有没有办法保证这一点?

【问题讨论】:

    标签: sqlite


    【解决方案1】:

    你错了:

    SELECT data FROM table_name WHERE condition=1 ORDER BY id LIMIT 10;
    

    是你需要的。
    它将对您需要的行进行排序,然后应用限制。
    来自http://www.sqlitetutorial.net/sqlite-limit/

    SQLite LIMIT 和 ORDER BY 子句
    我们通常将 LIMIT 子句与 ORDER BY 子句一起使用,因为我们是 有兴趣按指定顺序获取行数,而不是 未指定的顺序。

    ORDER BY 子句出现在 SELECT 中的 LIMIT 子句之前 陈述。

    SQLite 在获取结果集的数量之前对结果集进行排序 LIMIT 子句中指定的行。

    【讨论】:

    • 您能否指出文档中验证此声明的位置?
    猜你喜欢
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    相关资源
    最近更新 更多