2016-08-23 9 views
1

これは私がすでに持っているものです。複数の項目(文章)によるMysqlのクエリの注文

SELECT karma 
    , profanity 
    , username 
    FROM users 
ORDER 
    BY (karma - profanity) DESC 
LIMIT 10 

は、どのように私はこのようになりますORDER BY (karma - profanity) DESC LIMIT 10ORDER BY profanity DESC LIMIT 10

CREATE TABLE Test 
    (`id` int, `username` varchar(55), `karma` int,`profanity` int) 
; 

INSERT INTO Test 
    (`id`, `username`, `karma`, `profanity`) 
VALUES 
    (1, 'User1', '10', '1'), 
    (2, 'User2', '8', '2'), 
    (3, 'User3', '1', '2'), 
    (4, 'User4', '11', '1'), 
    (5, 'User5', '5', '0'), 
    (6, 'User6', '6', '3'), 
    (7, 'User7', '1', '1'), 
    (8, 'User8', '2', '3'), 
    (9, 'User9', '2', '1'), 
    (10, 'User10', '1', '7'), 
    (11, 'User11', '7', '7'), 
    (12, 'User12', '1', '1'), 
    (13, 'User13', '10', '0'), 
    (14, 'User14', '1', '3'), 
    (15, 'User15', '7', '0') 
; 

望ましい結果で注文することができます。

karma, profanity, username | profanity username 
    10   0 User13    7 User11 
    11   1 User4    7 User10 
    10   1 User1    3 User8 
    7   0 User15    3 User6 
    8   2 User2    3 User14 
    5   0 User5    2 User3 
    6   3 User6    2 User2 
    2   1 User9    1 User4 
    1   1 User7    1 User7 
    1   1 User12    1 User9 

の両方が出力result[i].(karma - profanity) and result[i].profanity)

に結合両方の順序を持​​ちます注文を受けたもの異なる吹き出し

http://sqlfiddle.com/#!9/7ca828/2

+0

ます。http:// sqlfiddle.com/#!9/7ca828/2 –

+0

そこに行くよ。私はバイクをアップvote。 @ストロベリーそれを取る – Drew

+0

これは十分な情報を持っていることを願って –

答えて

1

私は、これは表示上の問題に向けて方向転換されると思います - あなたは、通常、アプリケーションレベルのコードに解決したいもののようなものを、とにかく...

SELECT a.karma a_karma 
    , a.profanity a_profanity 
    , a.username a_username 
    , b.profanity b_profanity 
    , b.username b_username 
    FROM 
    (SELECT *,@kp:[email protected]+1 kp FROM test, (SELECT @kp:=0) vars ORDER BY karma-profanity DESC LIMIT 10) a 
    JOIN 
    (SELECT *,@p:[email protected]+1 p FROM test, (SELECT @p:=0) vars ORDER BY profanity DESC LIMIT 10) b 
    ON b.p = a.kp; 
+---------+-------------+------------+-------------+------------+ 
| a_karma | a_profanity | a_username | b_profanity | b_username | 
+---------+-------------+------------+-------------+------------+ 
|  10 |   0 | User13  |   7 | User11  | 
|  11 |   1 | User4  |   7 | User10  | 
|  10 |   1 | User1  |   3 | User8  | 
|  7 |   0 | User15  |   3 | User6  | 
|  8 |   2 | User2  |   3 | User14  | 
|  5 |   0 | User5  |   2 | User3  | 
|  6 |   3 | User6  |   2 | User2  | 
|  2 |   1 | User9  |   1 | User4  | 
|  1 |   1 | User7  |   1 | User7  | 
|  1 |   1 | User12  |   1 | User9  | 
+---------+-------------+------------+-------------+------------+ 
+0

あなたは@ドリューそこに喫煙しているか分かりませんが、私のためにいくつかを保存します。;-) – Strawberry

+0

ありがとうございます。これが私の必要なものです。 –

関連する問題