我有一个简单的表格items
),其中特别包含两个字段:group_name
和single_name
只有少数人有group_name
的值,但我需要将{1}}作为其中一个返回。
如果display_name
存在,则返回(即group_name
),如果group_name as display_name
为NULL,则返回group_name
。
我确信我可以做很多嵌套的select语句,但是我确信MYSQL使用if语句可以更容易地做到这一点。即在PHP代码中我会做这样的事情:
single_name as display name
我将在Angular中呈现数据,因此更喜欢SQL / API服务器在渲染时完成工作而不是客户端。
答案 0 :(得分:3)
您可以使用IFNULL
来解决此问题:
SELECT IFNULL(group_name, single_name) AS display_name FROM items
...为了完整性,您还可以使用CASE
:
SELECT CASE WHEN group_name IS NULL THEN single_name ELSE group_name END AS display_name FROM items
...或者您可以使用IF
:
SELECT IF(group_name IS NULL, single_name, group_name) AS display_name FROM items
答案 1 :(得分:3)
您也可以使用IF
SELECT
IF(group_name IS NULL, single_name, group_name) AS display_name
FROM
[table]
或CASE
SELECT
CASE
WHEN group_name IS NULL
THEN single_name
ELSE group_name
END
AS display_name
FROM
[table]