例如,我有一个包含数据的表:
按权重 desc 排序,排序 asc :
ID : Weight : Rank desc 8:7:2 7 : 7 : 3 4:5:2 6:4:1 2:2:4 9:2:2
我需要从此列表中递归地显示第一行和最后一行的数据对。行可能是奇数或偶数且不固定。可能是 100s。
返回的结果应该是这样的:
编号 : (8,9)**(7,2)**(4,6)
我正在考虑 Mysql Select UNION 但没有正确获取它。有帮助吗?
例如,我有一个包含数据的表:
按权重 desc 排序,排序 asc :
ID : Weight : Rank desc 8:7:2 7 : 7 : 3 4:5:2 6:4:1 2:2:4 9:2:2
我需要从此列表中递归地显示第一行和最后一行的数据对。行可能是奇数或偶数且不固定。可能是 100s。
返回的结果应该是这样的:
编号 : (8,9)**(7,2)**(4,6)
我正在考虑 Mysql Select UNION 但没有正确获取它。有帮助吗?
试试这个 // 这个想法是你将排序表与反向排序表配对:
SET @fw=0; #forwards counter/index
SET @bw=(SELECT COUNT(id) FROM yourtable); #backwards index
SET @limit= @bw/2; #limit tohalf the set to avoid full set of versions (resulting in duplicates)
SELECT a.id, b.id
FROM (
SELECT @bw:=@bw-1 AS ct, id
FROM `yourtable`
ORDER BY id
) a, (
SELECT @fw:=@fw+1 AS ct, id
FROM `yourtable`
ORDER BY id
) b
WHERE a.ct = b.ct
AND a.ct <= @limit