输出包含 null 的条目的列名(SQL,雄辩)

Posted

技术标签:

【中文标题】输出包含 null 的条目的列名(SQL,雄辩)【英文标题】:Output the column name with an entry that contains null (SQL, eloquent) 【发布时间】:2020-02-10 15:17:26 【问题描述】:

我得到了以下数据库:(mysql)

columns: A    B    C
row:     1   null  3

我想要一个包含非空条目的列列表。 列表应该是这样的:

A (1)
C (3)

为了实现这一点,我想获得一个列数组,以及它们的值。像这样:

column => 'a', value => 1, column => 'c', value => 3

所以我可以遍历它们来创建列表。

【问题讨论】:

用您正在使用的数据库标记您的问题。 这能回答你的问题吗? how to retrieve values from database that are not null 指定的重复项似乎与此问题无关。 【参考方案1】:

在很多数据库中,可以使用concat_ws()

select concat_ws(',',
                 (case when a is null then 'a' end),
                 (case when b is null then 'b' end),
                 (case when c is null then 'c' end)
                ) as null_columns

【讨论】:

非常感谢!!!!!!,现在可以使用了!!!我必须将它作为原始查询运行(使用 laravel)然后分解它,现在得到一个列表,谢谢!【参考方案2】:

这可能会实现您正在寻找的东西:

SELECT 
     CONCAT(
          "", 
          CONCAT_WS(
               ",",
               CONCAT("column => 'a', value => ", a, ""),
               CONCAT("column => 'b', value => ", b, ""),
               CONCAT("column => 'c', value => ", c, "")
          ),
          ""
     ) AS myArray 
FROM myTable

SEE DEMO HERE

【讨论】:

以上是关于输出包含 null 的条目的列名(SQL,雄辩)的主要内容,如果未能解决你的问题,请参考以下文章

laravel 雄辩的数据透视表查询“不明确的列名”

sql server where 字段 is null 的问题

如何在雄辩的 Laravel 中使用名称查找条目?

SQL查询中用到的函数

如何在mysql中获取值不为null的列名

sql 如何判断表中的某个字段是不是有某个值