Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL如果表中不存在字段,请选择空字段_Mysql - Fatal编程技术网

MySQL如果表中不存在字段,请选择空字段

MySQL如果表中不存在字段,请选择空字段,mysql,Mysql,我喜欢在可能包含某些字段但可能不包含的表上使用SELECT。如果不是,则该值可以像JOIN LEFT对不存在的行所做的那样返回为NULL 类似这样的伪SQL: SELECT id, email IF EXISTS, name, address FROM users; 应该在没有“email”字段的表“users”上运行而不出错,但返回email=NULL。您想要的可以而不是在纯SQL中完成 本质上,您希望SQL能够有条件地选择可能不存在的列。无法分析此类SQL-选定的所有列都必须存在,否则查询

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

类似这样的伪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';

这可能会有帮助:我可以使用其他sql语句获得表的结构,但这既复杂又昂贵。另一方面,“SELECT*”将输出所有现有的列,而不需要知道以前有哪些列。因此,我希望不需要事先进行额外的查询就能获得这种便利。