2017-01-03 11 views
0

はのは、私は次の表のレコードを持っているとしましょう:mysqlグループ別の列に基づいてによって

Id | machine | manual | 
------------------------------------- 
    1 | 1  | false | 
    2 | 2  | false | 
    3 | 3  | false | 
    4 | 4  | false | 
    5 | 1  | true | 

私はマシンの列に基づいて個別のテーブルを取得したいが、それが来るとき、「選んだ」マニュアルの間にする:偽真実は偽りに勝つ。

Id | machine | manual | 
------------------------------------- 
    5 | 1  | true | 
    2 | 2  | false | 
    3 | 3  | false | 
    4 | 4  | false | 

どうすればいいですか?

答えて

1

mysqlのboolean型の列は、これを行うことができるtinyint型です。

SELECT max(id), machine, max(manual) FROM machines group by machine; 

example output source

+0

はいシンプルかつエレガント! –

+0

これがうまくいく場合は、良い応答として確認してください。 –

+0

@ダヌビオあなたの「受け入れ」にもかかわらず、私はこれが本当にあなたが望むものであることを非常に疑う。 – Strawberry

2
SELECT x.* 
    FROM my_table x 
    JOIN 
    (SELECT machine,MAX(manual) manual FROM my_table GROUP BY machine) y 
    ON y.machine = x.machine 
    AND y.manual = x.manual; 
関連する問題