gpt4 book ai didi

MySQL:订单,限制,订单

转载 作者:行者123 更新时间:2023-11-29 01:41:27 27 4
gpt4 key购买 nike

我尝试编写一个有多个链接表的解决方案。现在我有另一个问题:

我想将返回的行数限制为 1000。但我想显示 ID 1-1000,下一页 1001-2000。ID可以以不规则的顺序存储在数据库中(ID 1不一定是第一行)

目前没有任何问题:

SELECT * FROM table ORDER BY id ASC LIMIT 1000

但是现在我必须按另一列对结果进行排序:

SELECT * FROM table ORDER BY name ASC LIMIT 1000

这可能会返回 1-1000 之外的其他 ID或者我做

SELECT * FROM table ORDER BY id ASC, ORDER BY name ASC LIMIT 1000

但这只会按 ID 排序,然后按名称排序。因此,如果我将任何 ID 重复(这是不可能的),我将按名称对它们进行排序。

我怎样才能获得前 1000 个 ID(有些 ID 可能不存在,因为它们之前可能已被删除!)和那千行按名称排序?

这可能吗?

最佳答案

试试这个:

SELECT * FROM table WHERE id IN (
SELECT ID FROM table ORDER BY ID ASC LIMIT 0, 1000
) ORDER BY name ASC

正如不支持子查询的注释中提到的,“此版本的 MySQL 尚不支持‘LIMIT & IN/ALL/ANY/SOME 子查询’”。使用 JOIN 是剩下的唯一选择,如下所示:

SELECT table.* FROM tab JOIN (
SELECT ID FROM table ORDER BY ID LIMIT 1000
) temp
ON table.ID = temp.ID
ORDER BY table.name

关于MySQL:订单,限制,订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20469552/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com