我被要求创建一个从db中列出TABLE_NAME,TABLE_ROWS,COLUMN_NAME和DATA_TYPE的程序。
问题是,我只能使用INFORMATION_SCHEMA.COLUMNS选择column_name,我可以使用INFORMATION_SCHEMA.table选择table_rows。我试图加入这两个但没有成功。
另外,我需要使用CHARACTER_MAXIMUM_LENGTH>过滤VARCHAR列。五 ,但如果我去“WHERE CHARACTER_MAXIMUM_LENGTH> 5”,它不仅会获得varchar,还会获得char data_types。
修改 这是我到目前为止所拥有的
SELECT c.table_name, c.column_name, c.data_type, t.table_rows, CHARACTER_MAXIMUM_LENGTH
FROM information_schema.columns c
JOIN information_schema.tables t ON c.table_name = t.table_name
WHERE t.table_schema = 'SAMPLE' AND CHARACTER_MAXIMUM_LENGTH > 5;
我认为我有正确的联接工作,但我仍然不确定如何将“CHARACTER_MAXIMUN_LENGHT> 5”仅过滤varchar数据类型......
有什么想法?
答案 0 :(得分:1)
从您的条件中排除除varchar
以外的所有数据类型:
AND (CHARACTER_MAXIMUM_LENGTH > 5 OR DATA_TYPE <> 'varchar')