是否可以在SQL中的SELECT中合并?

fed*_*o-t 6 mysql sql database merge select

假设我想从一个名为中的表中检索100条记录messages,我希望通过以下方式获取它们:

1st message
100th message
2nd message
99th message
3rd message
98th message
(...)
Run Code Online (Sandbox Code Playgroud)

有没有办法有效地做到这一点?什么是适当的查询?或者我应该查询选择前50个,查询选择最后50个然后合并结果?

Pau*_* H. 2

尝试一下您的 ID 是否是数字序列:

第一的

SET @half = (SELECT MAX(id) FROM messages)/2;
Run Code Online (Sandbox Code Playgroud)

然后

SELECT * FROM `messages` ORDER BY (IF(id<@half,@half*2-id,id-1)) DESC,id ASC;
Run Code Online (Sandbox Code Playgroud)