致力于将在更早、更随心所欲的时间中组合在一起的一堆数据库解析为新模式。基本上它是每年一个数据库,数据库名称如 foo98、foo99、foo2000 等。
所以对于最近的 foo 数据,我可以做类似的事情
SELECT foo_person.mdname AS middle_name,
...
FROM foo_person, foo_place, foo_thing
当您返回 foo 数据库的早期版本时,不会存储中间名。我试图构建一种通用查询,例如:
SELECT IFNULL(foo_person.mdname, "") AS middle_name,
...
FROM foo_person, foo_place, foo_thing
但是 MySQL 提示未知列 foo_person.mdname,这是完全合理的,因为它不存在。
是否有某种方法可以仅使用 MySQL 语法来处理不存在的列,或者我是否必须编写特定于数据库的导入查询?
最佳答案
没有任何方法可以处理 sql 中不存在的列(与空列相反)。
您可以使用 information_schema 表判断该列是否存在,如下所示:
select * from information_schema.columns
where table_name='mytable' and table_schema='mydatabase';
关于sql - 处理 MySQL 中缺失的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1596383/