摆弄MySQL:information_scheme

时间:2016-04-08 11:22:29

标签: mysql

美好的一天!

所以我一直在摆弄MySQL并遇到障碍。这是代码:

SELECT table_name, table_rows, data_length, update_time FROM information_schema.tables
WHERE table_name IN
('table_1' , 'table_2' , 'table_3' , 'table_4')

我要做的是通过information_scheme检查表状态。它工作正常 - 直到上面代码中的任何给定表不存在。 目标是得到一个看起来像这样的结果:

+------------------+------------+-------------+---------------------+
| table_name       | table_rows | data_length | update_time         |
+------------------+------------+-------------+---------------------+
| table_1          |    7041979 |  5497161940 | 2016-04-07 02:53:41 |
| table_3          |       NULL |       NULL  |                NULL |

我无法找到办法。阅读大量关于它的信息,仍然无法绕过它。有一种感觉这应该简单而优雅地解决,但是如何?

谢谢。

1 个答案:

答案 0 :(得分:1)

改为使用left join

SELECT tn.table_name, t.table_rows, t.data_length, t.update_time
FROM (SELECT 'table_1' as table_name UNION ALL
      SELECT 'table_2' as table_name UNION ALL
      SELECT 'table_3' as table_name UNION ALL
      SELECT 'table_4' as table_name
     ) tn LEFT JOIN
     information_schema.tables t
     ON tn.table_name = t.table_name;