Mysql 检索特定行中具有非空值的列的列名

Mysql 检索特定行中具有非空值的列的列名,mysql,Mysql,我想要列的列名,这些列在由url标识的给定行中不包含空值,例如:-www.facebook.com。 查询的输出应该是 电子邮件、密码您可以这样做 select url, group_concat(null_col separator ',') from ( select url, 'username' null_col from yourTable where username is null union all select url

我想要列的列名,这些列在由url标识的给定行中不包含空值,例如:-www.facebook.com。 查询的输出应该是
电子邮件、密码

您可以这样做

select  url, group_concat(null_col separator ',')
from    (
            select  url, 'username' null_col from yourTable where username is null union all
            select  url, 'phone' from yourTable where phone is null union all
            select  url, 'email' from yourTable where email is null union all
            select  url, 'password' from yourTable where password is null union all
            select  url, 'login' from yourTable where login is null
        ) t1
group by url
请注意,在同一列中存储多个值是一个众所周知的坏主意,因为在该列上加入、过滤或执行任何其他操作都会让人感到噩梦


但是,如果这种连接是您需要的最终结果,那么上面的查询应该可以做到这一点。

您能详细说明一下吗,我的意思是你真正想要的。我使用扩展名从浏览器获取当前url,并使用此url填充当前网站登录表单,我需要输入字段名或id值,这些字段名或id值存储在上表中,如facebook所示,所以我想从数据库中获取此名称电子邮件。你能解释一下吗关于作为参数传递给group_concat的null列分隔符,以及在“username”之后使用的null列。
null列
是内部查询第二列的别名,因此它也是要连接的列<代码>分隔符“,”表示
null\u col
的每个值都将用逗号与下一个值隔开