我想从一个SQL语句中具有相同列名的多个表中获取数据,例如:
SELECT name, age FROM table_a UNION SELECT name, age FROM table_b UNION...
但是table_x可能不存在,我无法避免向发送请求给我的人发送的请求,如果其中一个表未在查询中退出,它将失败,是否有语法可以避免这种情况?>
我知道一种可以使用show tables
获取数据库中所有表并将它们首先与请求参数进行比较的方法,但是我希望我可以从MySQL语法中做到这一点。
答案 0 :(得分:1)
简短的回答是“否”。如果您使用的是其他语言,例如PHP或其他任何语言,则可以按照您的建议查询表,但是SQL希望查询在语法上是准确的,否则查询将出错。如果必须的话,有一种方法(IMO不好)。您可以使用存储过程,这将允许您像使用PHP或其他语言一样动态构建查询,但这就是MySQL(或我所知道的任何数据库)所具有的全部功能。