美好的一天!
所以我一直在摆弄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 |
我无法找到办法。阅读大量关于它的信息,仍然无法绕过它。有一种感觉这应该简单而优雅地解决,但是如何?
谢谢。
答案 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;