1

私はmysqlにまったく慣れていません。ここでは、以下に示すように、並べ替えられた順序でカテゴリ()に基づいてmysql列を4つの異なる列に分割するクエリを作成しようとしています。私は今までこのようなクエリを書いてきました:col1col2

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という名前のエントリがあったとします。Ollycategory fourthNULLcol4Ashley

4

1 に答える 1