mysql - 检查字段是否存在且不为空

标签 mysql sql select

我需要从表中获取一个值,有三种可能性:1)该字段存在且不为空,因此返回该字段的值2)该字段存在但为空,因此返回is-null- string 3) 该字段不存在,因此返回 not-existing-string

我正在尝试运行此查询,但收到此错误消息#1054 - “字段列表”中的未知列“m.my_field”

SELECT if (exists(SELECT *
                  FROM information_schema.COLUMNS
                  WHERE TABLE_NAME = 'my_table' AND COLUMN_NAME = 'my_field'
                 ), IFNULL(m.my_field, 'is-null-string'), 'not-existing-string'
       ) AS my_field,
       m.*
FROM my_table m

知道如何在 mysql 5.6 中完成它吗?

最佳答案

您正在寻找的是DESCRIBE :

DESCRIBE my_table;

查看结果以查看您的字段是否存在。请注意,您不希望此代码出现在您的应用程序中。您需要知道表字段才能运行查询。您可能仅使用它来生成一些样板代码。

关于mysql - 检查字段是否存在且不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56732463/

相关文章:

mysql - 如何使用mysql获取用户的顶层分层数据?

php - 如果记录存在于另一个表中,则 MySQL INSERT

mysql - SQL 查询,每个特定列限制为 1 个结果

css - 重力形式 选择占位符样式

ruby-on-rails - 在选择标签中显示当前值

java - 2 个 Servlet 之间的通信不适用于数据库

sql - 自连接与内部和外部连接查询

php - 计算列的内容

mysql - SQL 语句 值乘以 3

php - Yii2 加载数据本地 INFILE