MySQL Select 非空列
MySQL Select Column if Not Null only
我有这个 mysql 代码:
SELECT firstname, lastname, age, gender from persons WHERE id = 1;
显示:
> firstname: Marlon
>
> lastname: Null
>
> age: 26
>
> gender: male
我想做的是:
SELECT IF NULL DONT SELECT(firstname), IF NULL DONT SELECT(lastname), IF NULL DONT SELECT(age), IF NULL DONT SELECT(gender) from persons WHERE id = 1;
显示:
> firstname: Marlon
>
> age: 26
>
> gender: male
姓氏没有显示,因为它为空
当然你不能那样做;相反,您可以使用 COALESCE()
或 IFNULL()
函数在 NULL
like
的情况下提供默认值
SELECT firstname,
COALESCE(lastname,'N/A'),
age,
gender from persons WHERE id = 1;
(或)如果您想完全删除该记录,请使用 WHERE
条件,例如
SELECT firstname, lastname, age, gender from persons
WHERE id = 1 AND lastname IS NOT NULL;
即使无法隐藏列,但是您可以避免输出中出现空值。所以可以有以下两种方式-
方法一:你可以在字段为空的地方留空。
SELECT IFNULL(firstname,'') AS firstname,
IFNULL(lastname,'') AS lastname,
IFNULL(age,'') AS age,
IFNULL(gender,'') AS gender
FROM persons WHERE id = 1;
方法 2:您可以使用连接函数获取单个列中的所有值。
SELECT CONCAT
(
IFNULL(firstname,''),' ',
IFNULL(lastname,''),' ',
IFNULL(age,''),' ',
IFNULL(gender,'')
)
FROM persons WHERE id = 1;
我有这个 mysql 代码:
SELECT firstname, lastname, age, gender from persons WHERE id = 1;
显示:
> firstname: Marlon
>
> lastname: Null
>
> age: 26
>
> gender: male
我想做的是:
SELECT IF NULL DONT SELECT(firstname), IF NULL DONT SELECT(lastname), IF NULL DONT SELECT(age), IF NULL DONT SELECT(gender) from persons WHERE id = 1;
显示:
> firstname: Marlon
>
> age: 26
>
> gender: male
姓氏没有显示,因为它为空
当然你不能那样做;相反,您可以使用 COALESCE()
或 IFNULL()
函数在 NULL
like
SELECT firstname,
COALESCE(lastname,'N/A'),
age,
gender from persons WHERE id = 1;
(或)如果您想完全删除该记录,请使用 WHERE
条件,例如
SELECT firstname, lastname, age, gender from persons
WHERE id = 1 AND lastname IS NOT NULL;
即使无法隐藏列,但是您可以避免输出中出现空值。所以可以有以下两种方式-
方法一:你可以在字段为空的地方留空。
SELECT IFNULL(firstname,'') AS firstname,
IFNULL(lastname,'') AS lastname,
IFNULL(age,'') AS age,
IFNULL(gender,'') AS gender
FROM persons WHERE id = 1;
方法 2:您可以使用连接函数获取单个列中的所有值。
SELECT CONCAT
(
IFNULL(firstname,''),' ',
IFNULL(lastname,''),' ',
IFNULL(age,''),' ',
IFNULL(gender,'')
)
FROM persons WHERE id = 1;