sql - 处理 MySQL 中缺失的列

标签 sql mysql mysql-error-1054

致力于将在更早、更随心所欲的时间中组合在一起的一堆数据库解析为新模式。基本上它是每年一个数据库,数据库名称如 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/

相关文章:

mysql - MySQL 中搜索查询中 'dd/dd/dd' 的正则表达式

java - 如何在准备好的语句java中使用特殊字符

php - mysql_fetch_array ,日期分隔

php - 在 PHP 中使用 MySQL 并尝试将数据库插入表时出现问题

sql - 无效的 SQL 查询

mysql - Magento 商店 - SQL 错误

mysql - 自动将 0 或空字符串转换为 NULL

sql - 优化的 sql 查询以计算不同表中具有来自同一用户的评论的产品

sql - 返回在 UPDATE 中实际更改的表的行

MySQL 触发器 - 使用从另一个表中选择的值更新表