mysql - 联合不存在的表的问题
问题描述
我想在一个 SQL 语句中从多个具有相同列名的表中获取数据,例如:
SELECT name, age FROM table_a UNION SELECT name, age FROM table_b UNION...
但是 table_x 可能不存在,我无法避免向我发送请求的人,如果其中一个表没有在查询中退出,它将失败,是否有任何语法可以避免这种情况?
我知道一种方法可以show tables
用来获取数据库中的所有表并首先将它们与请求参数进行比较,但我希望我可以从 MySQL 语法中做到这一点。
解决方案
最简洁的答案是不。如果您在它前面使用另一种语言,例如 PHP 或任何其他语言,您可以按照您的建议查询表,但 SQL 期望查询在语法上是准确的,如果不是,它将出错。如果必须的话,有一种(IMO 不好)方法可以做到这一点。您可以使用存储过程,它允许您像使用 PHP 或其他语言一样动态构建查询,但这就是 MySQL(或我知道的任何数据库)所拥有的一切。
推荐阅读
- c# - 在 c# .net 中覆盖/删除文本文件的内容
- javascript - set margin around child div when parent's width is set using javascript
- html - 在 XPATH 中搜索时如何忽略兄弟元素?
- c# - SQL Server 代理 - SSIS 包 - 权限
- javascript - 单击时未打开模态(物化,jquery)
- gcloud - 您如何要求在调用 gcloud 时指定项目?
- angularjs - 角度 ui-router 动态锚点
- angular - Angular 5:如何在 HttpClient Post 请求中发送多个参数?
- ruby-on-rails - 获取磁盘上 ActiveStorage 文件的路径
- javascript - 在 js 文件中定义的类,在 node.js 中未定义