web-dev-qa-db-ja.com

mysqlはアルファベット順にテーブルの列名を取得します

MySQLデータベースにクエリを実行して、テーブルの列名をアルファベット順に取得することはできますか?そんなこと知ってる

SHOW COLUMNS `table_name`;

または

DESCRIBE `table_name`;

テーブル内の列のリスト(および他の情報)が表示されますが、列をアルファベット順に並べ替えるためにクエリを変更することは可能です。 ORDER BY 'フィールド'の追加が機能せず、構文エラーが発生しました。

23
John Scipione

ANSI INFORMATION_SCHEMAテーブル(この場合はINFORMATION_SCHEMA.COLUMNS) MySQLの柔軟性が向上します。

SELECT c.column_name
  FROM INFORMATION_SCHEMA.COLUMNS c
 WHERE c.table_name = 'tbl_name'
-- AND c.table_schema = 'db_name'    
ORDER BY c.column_name
31
OMG Ponies

詳細が必要な場合は、以下のクエリが非常に便利です。

   SELECT COLUMN_NAME  as 'Field',
   COLUMN_TYPE    as 'Type',
   IS_NULLABLE    as 'Null',
   COLUMN_KEY     as 'Key',
   COLUMN_DEFAULT as 'Default',
   EXTRA          as 'Extra'
   from INFORMATION_SCHEMA.COLUMNS
   where TABLE_NAME   = 'my table' and
   TABLE_SCHEMA = 'my database'
   add ordering
   order by Type;  -- 
3
user3805033

group by column nameを使用するまで、すべてのフィールドが2回リストされていました。

 select c.COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS c 
 where c.TABLE_NAME = `'tbl_name'` 
 group by c.column_name 
 order by c.column_name
3
Stephen