有没有办法选择前3行和后3行(偏移量3),并在一个查询中获得两个数组的结果?比如:
(SELECT * FROM product WHERE 1 LIMIT 3) as first_array
(SELECT * FROM product WHERE 1 OFFSET 3 LIMIT 3) as second_array
希望你能理解我。很抱歉,我不知道该怎么解释。
假设我只想要ids-output示例:
id_1 id_2
1 4
2 5
3 6
我在帖子下面的答案中尝试的是:
SELECT id as id_1 FROM `ct_product` WHERE 1 LIMIT 3
UNION ALL
SELECT id as id_2 FROM `ct_product` WHERE 1 LIMIT 3 OFFSET 3
结果对我来说很奇怪。它似乎只返回第二个查询结果,它们不是第4行、第5行和第6行,而是第5行、第6行和第3行(按此顺序)。我的表行是:
id
1
2
3
4
5
6
7
1条答案
按热度按时间rdlzhqv91#
您可以使用以下查询:
输出:
这个查询通过创建两个带有人工生成的行号的新表来工作(
@rownum1
以及@rownum2
)从原始表的前3行和后3行。然后在匹配的行号上连接它们以获得所需的结果。