我正在寻找一种在MySQL数据库模式中仅显示填充表列表的方法,换句话说就是通过过滤掉所有空表来实现。
我知道我可以执行类似的操作来显示数据库模式中的所有表:
int applyCharOrder(char c){
return "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".indexOf(c);
}
如果我想为仅显示NOT NULL表的列表添加其他WHERE条件,该怎么办?
答案 0 :(得分:1)
我不知道是否有帮助,但是您可以将两个WHERE子句与AND一起使用
要过滤出空表,您可以检查表是否有如下行:
WHERE table_rows >= 1
因此完整的查询将是
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'myd_db_schema_name' AND table_rows >= 1
我还没有尝试过,但希望它能起作用。
答案 1 :(得分:0)
好的,这是解决方案:
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'my_db_schema_name' AND table_rows >= 1
我使用COLUMNS
而不是使用TABLES
。