私はmysqlにまったく慣れていません。ここでは、以下に示すように、並べ替えられた順序でカテゴリ()に基づいてmysql
列を4つの異なる列に分割するクエリを作成しようとしています。私は今までこのようなクエリを書いてきました:col1
col2
select if(category = 'first',name ,NULL) as first,
if(category = 'second',name,NULL) as second,
if(category = 'third',name,NULL) as third,
if(category = 'fourth',name,NULL) as fourth
from 'table';
このコードは私に4つの列を与えますが、これをさらにフィルタリングすることができないので、私は今行き詰まっています.
与えられたテーブル:
name category
John first
Sunil third
Jenny third
Ashley fourth
Meera second
Abhay first
必須の回答:
col1 col2 col3 col4
Abhay Meera Jenny Ashley
John NULL Sunil NULL
回答のすべての列がソートされていることに注意してください。
編集:最終的な回答の形式について質問が明確ではないと思います。指摘してくれてありがとう@philipxy。最終的な回答は、最小行数 (私の場合は 2) で調整する必要があります。すべての列には同じ数の行が必要であり、一部の列の値が小さい場合、その行は
NULL
それぞれの列に値をcol2
持ちますcol 4
。最後に、すべての列がソートされた順序になっている必要があります(存在する場合)。たとえば、 withNULL
という名前のエントリがあったとします。Olly
category
fourth
NULL
col4
Ashley