是否可以查詢MySQL數據庫以按字母順序獲取表的列名?我知道mysql按字母順序獲取表列名
SHOW COLUMNS `table_name`;
或
DESCRIBE `table_name`;
給我列一個清單,在表格(連同其他信息),但它是可以改變的查詢,以獲得列按字母順序排序。添加ORDER BY'Field'不起作用,它給出了語法錯誤。
是否可以查詢MySQL數據庫以按字母順序獲取表的列名?我知道mysql按字母順序獲取表列名
SHOW COLUMNS `table_name`;
或
DESCRIBE `table_name`;
給我列一個清單,在表格(連同其他信息),但它是可以改變的查詢,以獲得列按字母順序排序。添加ORDER BY'Field'不起作用,它給出了語法錯誤。
的ANSI INFORMATION_SCHEMA tables (in this case, 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
每場被列入兩次,直到我用group by column name
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
如果您想了解更多的細節,下面的查詢是非常方便的:
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; --
工作很好,會再次使用。你能告訴我爲什麼c.table_schema條件存在,但因爲它似乎沒有它的工作。 – 2010-09-24 22:55:07
@John Scipione:雙破折號「 - 」是SQL中的註釋; table_schema從查詢中被註釋掉。刪除它在報表中評估的雙破折號。 – 2010-09-24 23:02:42