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

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

例如.像这样的伪SQL:

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

应该在没有’email’字段的表’users’上运行而没有错误,但是返回email = NULL.
最佳答案
你想要什么不能在纯SQL中完成.

实质上,您希望SQL可以有条件地选择可能不存在的列.无法解析此类SQL – 所有选定的列必须存在或查询无效.

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

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

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

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。