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

标签 mysql

我喜欢在可能包含某些字段但可能不包含的表上使用 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';

关于如果表中不存在,MySQL 选择一个字段为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062815/

相关文章:

MySQL GROUP BY 查询

php - 即使此 php 或 sql 中没有报告错误,这也不会更新

php - MySQL:如何减去更新

php - 如何在openfire(XMPP) mysql数据库中存储群聊?

php - Codeigniter,mysql,select_max并在插入另一条记录之前添加1

java - 从对象列表中获取值

mysql - ORDER BY 先提,再按另一列

php - 将mysql结果写入json文件

java - 在java语句中执行多个命令

php - 如何减去类型不同的行的同一列?