2012-04-26 6 views

答えて

1

代わりに情報スキーマテーブルを直接照会できます。 manual says通り:

次の文はほぼ同等です:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE table_name = 'tbl_name' 
    [AND table_schema = 'db_name'] 
    [AND column_name LIKE 'wild'] 

SHOW COLUMNS 
    FROM tbl_name 
    [FROM db_name] 
    [LIKE 'wild'] 

それは通常のSELECTコマンドですので、あなたは、文の最初のタイプにORDER BY句を適用することができます。

したがって、あなたのSHOWコマンドの代わりに、あなたが行うことができます:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
     TABLE_NAME = 'TB_Main' 
    AND COLUMN_TYPE IN ('mediumtext', 'bit(1)') 
ORDER BY COLUMN_NAME; 
+2

ほとんど、私は 'あなたが必要だと思うとCOLUMN_TYPE IN( 'MEDIUMTEXT'、 'ビット(1)')'の代わりに 'DATA_TYPEの'http://sqlfiddle.com/#!2/86af6/12 – craniumonempty

+1

提案してくれてありがとう@craniumonempty ...しかし、私は不思議です:ドキュメントは両方のフィールドを持つ' COLUMNS'スキーマテーブルを表示しますが、違いは何ですか? ** ** EDIT **:あなたのsqlfiddleで再生され、 'DATA_TYPE'に列幅が含まれていないことがわかりますが、' COLUMN_TYPE 'は列幅を含んでいます。私の答えを更新しました - ありがとう。 – eggyal

関連する問題