我需要CONCAT
两个字段,如果它们都存在并在第二个字段周围添加括号。否则我只需要列出第一个字段。
这是简单的版本:
SELECT id, CONCAT(name,' (',nickname,')') as name FROM user;
只要名称和昵称都存在,您应该得到如下结果:
1 | Adam (Alpha Dog)
2 | Bob (Bobby)
3 | Charles (Charlie)
但是,如果没有昵称,它只会跳过整个内容为null
. 例如: id 4
、 name Doug
、nicknamenull
给出结果:
4 | null
我想看到的是它只列出名字......像这样:
4 | Doug
于是我开始看CONCAT
IFNULL
。但我很难做到正确。你能帮我吗?
以下是我尝试过的一些示例:
SELECT id, CONCAT(IFNULL(name, ' (', nickname, ')', name) as name FROM user;
SELECT id, CONCAT(name, IFNULL(' (', nickname, ')')) as name FROM user;