mysql - MySQL Select 语句不返回索引为零的表
问题描述
我正在尝试运行此查询以找出每个表中的索引数。但是,它似乎没有返回任何索引为零的表。(在 Mac Workbench 上运行)
SELECT TABLE_NAME,
COUNT(1) index_count,
GROUP_CONCAT(index_name SEPARATOR ',\n ') indexes
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = '<my_schema>'
GROUP BY TABLE_NAME;
我试图更改计数内的值,但无济于事。蚂蚁提示或建议表示赞赏!
解决方案
该STATISTICS
表只有索引行;如果一个表没有任何索引,它就不会在那里,所以只查询那个表不会返回任何东西。
您需要左加入TABLES
表格,STATISTICS
以便获得所有表格。
SELECT t.table_name, COUNT(s.index_name) index_count, IFNULL(GROUP_CONCAT(s.index_name SEPARATOR ',\n '), '') indexes
FROM INFORMATION_SCHEMA.TABLES AS t
LEFT JOIN INFORMATION_SCHEMA.STATISTICS AS s ON t.table_schema = s.table_schema AND t.table_name = s.table_name
WHERE t.table_schema = '<my_schema>'
GROUP BY t.table_name
推荐阅读
- node.js - NodeJs Heroku 部署在构建时失败
- reactjs - 如何从 React 中该组件外部的按钮提交表单?
- docker - 如何使用 docker-compose 和 dockerfile 在卷上运行命令?
- java - Integer.parseInt(“10”); 之间的区别 和 Integer.valueOf(“10”);
- docker - 容器之间的链接在我的 Rancher 1.6.21 堆栈中不起作用
- visual-studio-2010 - 使用 VB 2013 的 SQL 插入查询
- python - 如何在scrapy中使用逻辑或?
- jmeter - 远程执行中jmeter客户端中jmeter服务器日志的聚合
- performance - 为 Weblogic 参数化垃圾收集以提高性能
- javascript - return 关键字的行为很奇怪