我喜欢在可能包含某些字段的表上使用SELECT,但可能不是。如果不是,则该值可以返回为NULL,就像JOIN LEFT对不存在的行所做的那样。
EG。像这样的Pseudo-SQL:
SELECT id, email IF EXISTS, name, address FROM users;
应该在没有'email'字段的表'users'上运行,但是返回email = NULL。
答案 0 :(得分:4)
你想要的是不在纯SQL中完成。
基本上,您希望SQL可以有条件地选择可能不存在的列。无法解析此类SQL - 选择的所有列必须,否则查询将无效。
但是,您可以通过查询目录表来检查您连接到的数据库的模式,并基于此动态构建SQL,从而实现此应用程序代码。
此查询可能有助于您的应用代码构建您的查询:
select COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'users'
and TABLE_SCHEMA = 'YOUR-DB-NAME';