2012-04-26 59 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'] 

你可以申請一個ORDER BY條款第一種類型的聲明,因爲它是一個正常的SELECT命令。

因此,在地方你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 2012-04-26 23:12:05

+1

感謝您的建議@craniumonempty ...但我很好奇:雖然文檔顯示'COLUMNS'模式表具有兩個字段,他們不指定區別是什麼? ** **編輯**:與你的sqlfiddle一起玩,我可以看到'DATA_TYPE'不包括列寬,而'COLUMN_TYPE'。更新了我的答案 - 謝謝。 – eggyal 2012-04-26 23:14:09

相關問題