MySQLのSelectステートメントは、ゼロのインデックスを持つテーブルを返しません

testPanda1089:

私は、各テーブルのインデックス数を見つけるために、このクエリを実行しようとしています。しかし、それはゼロのインデックスを持つ任意のテーブルを返すされていないようです。(Macのワークベンチでこれを実行します)

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;

私は無駄には、カウント内の値を変更しようとしてきました。Antのヒントやアドバイスは大歓迎です!

Barmar:

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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=25882&siteId=1