【发布时间】:2014-06-10 10:34:37
【问题描述】:
我有一个名为tableA 的表,它在某些数据库中可能不存在。当数据库中不存在此 tableA 时,我希望忽略 select 查询语句。
我已尝试从信息架构中选择计数,但 if-else 语句之一仍然具有 select * from tableA,这仍然会给我一个错误。
SELECT IF(
(SELECT COUNT(*) FROM information_schema.TABLES
WHERE TABLE_NAME = 'tableA')>0,
(SELECT COUNT(*) FROM tableA),
(SELECT COUNT(*) FROM tableB) )
而且我还需要 true-false 的 select 语句来返回超过 1 列,但是当我尝试这样做时,它会给我一个超过 1 个操作数的错误。如何使查询在此 IF 查询中返回多于 1 列。
【问题讨论】:
-
是的,你不能那样做。可能需要重新设计。
-
你为什么要这个?看起来很奇怪。
-
因为报表在其他客户端使用时,有些客户端没有表..所以需要调入查询以支持全部
标签: mysql