如果表中不存在,MySQL将字段选择为NULL

时间:2012-01-30 11:01:00

标签: mysql

我喜欢在可能包含某些字段的表上使用SELECT,但可能不是。如果不是,则该值可以返回为NULL,就像JOIN LEFT对不存在的行所做的那样。

EG。像这样的Pseudo-SQL:

SELECT id, email IF EXISTS, name, address FROM users;

应该在没有'email'字段的表'users'上运行,但是返回email = NULL。

1 个答案:

答案 0 :(得分:4)

你想要的是在纯SQL中完成。

基本上,您希望SQL可以有条件地选择可能不存在的列。无法解析此类SQL - 选择的所有列必须,否则查询将无效。

但是,您可以通过查询目录表来检查您连接到的数据库的模式,并基于此动态构建SQL,从而实现此应用程序代码。

此查询可能有助于您的应用代码构建您的查询:

select COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'users'
and TABLE_SCHEMA = 'YOUR-DB-NAME';