假设我有一个问题
SELECT *
FROM foo
ORDER BY id
我想要第 1 个、第 5 个、第 100 个、第 250 个结果等。
SELECT *
FROM foo
ORDER BY id
LIMIT 5, 1
给你第 5 个。我可以运行 N 次类似的查询。但是,我怎样才能在一个查询中更优雅地做到这一点?
像这样的东西(它不起作用)会很棒!
LIMIT 1, 5, 100, 250
最佳答案
一种方式是 ROW_NUMBER
(MySQL 8.0):
SELECT *
FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY id) AS rn FROM foo) sub
WHERE rn IN (1, 5, 100, 250)
ORDER BY rn;
关于mysql - 从一组中选择多个离散记录,如 LIMIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57647262/