SQL
select group_concat(column_name) from information_schema.columns
where table_schema = 'information_schema' and table_name = 'COLLATIONS'
結果
COLLATION_NAME,CHARACTER_SET_NAME,ID,IS_DEFAULT,IS_COMPILED,SORTLEN
ちなみに、group_concatを使わずに取れるデータがこれ。
-------------------------------
COLLATION_NAME
CHARACTER_SET_NAME
ID
IS_DEFAULT
IS_COMPILED
SORTLEN
-------------------------------
複数行のデータが、1行にまとまっていることがわかります。
親子の関連を持つデータで、このデータを横並び表示したい時とかにも活用できそうです。
注意点
●戻せるデータのサイズが決まってます。(設定で変更可能)[my.ini]の[mysqld]セクションに以下を記載すると反映されます。(要再起動
set group_concat_max_len = 2048000;
※2MBにしています
●NULLを含むデータの場合、NULLが除外されます。
応用
・区切り文字をタブへ変えて、並び順を指定しています
・NULLは、ブランクへ置き換える事により、除外されることを防止しています
・NULLは、ブランクへ置き換える事により、除外されることを防止しています
select group_concat(CASE WHEN column_name IS NULL THEN '' ELSE column_name END order by ordinal_position separator '\t') from information_schema.columns
where table_schema = 'information_schema' and table_name = 'COLLATIONS'
0 件のコメント:
コメントを投稿