0

たとえば、データを含むテーブルがあるとします。

いくつかの重量による注文desc、Rank asc:

ID:重量:ランク説明
8:7:2
7:7:3
4:5:2
6:4:1
2:2:4
9:2:2

このリストの最初と最後の行のデータのペアを再帰的に表示する必要があります。行は奇数または偶数の場合があり、固定されていません。100の場合があります。

返される結果は次のようになります。

ID:(8,9)**(7,2)**(4,6)

Mysql Select UNIONを考えていますが、正しく取得できません。何か助けはありますか?

4

1 に答える 1

0

これを試してください//アイデアは、ソートされたテーブルを反転ソートされたテーブルとペアにすることです。

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
于 2013-02-20T15:19:22.433 に答える