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个然后合并结果?
尝试一下您的 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)
归档时间: |
|
查看次数: |
190 次 |
最近记录: |