Rya*_*yan 5 mysql concat concatenation ifnull
我需要CONCAT两个字段,如果它们都存在并在第二个字段周围添加括号.否则我只需要列出第一个字段.
这是简单的版本:
SELECT id, CONCAT(name,' (',nickname,')') as name FROM user;
Run Code Online (Sandbox Code Playgroud)
只要名称和昵称都存在,您应该获得如下结果:
1 | Adam (Alpha Dog)
2 | Bob (Bobby)
3 | Charles (Charlie)
Run Code Online (Sandbox Code Playgroud)
但是,如果没有昵称,它只会跳过整个事情null.例如:id 4,name Doug,nickname null给出结果:
4 | null
Run Code Online (Sandbox Code Playgroud)
我想看到的只是列出名称......像这样:
4 | Doug
Run Code Online (Sandbox Code Playgroud)
所以我开始关注CONCAT IFNULL.但是我很难把它弄好.你能帮我吗?
以下是我尝试过的几个例子:
SELECT id, CONCAT(IFNULL(name, ' (', nickname, ')', name) as name FROM user;
SELECT id, CONCAT(name, IFNULL(' (', nickname, ')')) as name FROM user;
Run Code Online (Sandbox Code Playgroud)
fth*_*lla 13
您可以使用跳过空字符串的CONCAT_WS:
SELECT id, CONCAT_WS(' ', name, concat('(',nickname,')')) as name FROM user;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13230 次 |
| 最近记录: |