如果 client_name 后面有括号,则尝试显示 client_nickname,但是如果 client_nickname 为 NULL,也仍然显示 client_name。无法显示没有昵称的 client_name。
尝试了 WHERE 语句,但仍然只显示有昵称的名字。
这是我随机创建的虚拟数据库
CREATE TABLE client (
client_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
client_nickname VARCHAR (30),
client_mobile int(10),
client_home int(10),
client_office int(10)
);
INSERT INTO client (client_id, firstname, lastname, client_nickname, client_mobile, client_home, client_office)
VALUES ('1', 'Doe', 'John', 'Johnny', '11223344',NULL, '66778899');
INSERT INTO client (client_id, firstname, lastname, client_nickname, client_mobile, client_home, client_office)
VALUES ('2', 'Mary', 'Lee', NULL, '99887766','44556677', '66778899');
INSERT INTO client (client_id, firstname, lastname, client_nickname, client_mobile, client_home, client_office)
VALUES ('3', 'Dreylan', 'Zhou', 'LilMonster', NULL, NULL, '66770000');
到目前为止我为实现我想要的而编写的代码
SELECT CONCAT (firstname, " ", lastname, ' (', client_nickname, ')') AS client_name
FROM client;
我希望列“client_name”包含所有 3 个客户端名称,如下所示:
Doe John (Johnny)
Mary Lee
Dreylan Zhou (LilMonster)
但实际输出只有:
Doe John (Johnny)
Dreylan Zhou (LilMonster)
最佳答案
你可能需要检查 null
SELECT case when client_nickname is null
then CONCAT(firstname, " ", lastname)
else CONCAT(firstname, " ", lastname, ' (', client_nickname, ')')
end AS client_name
FROM client;
关于MySQL - 如何在名称后面显示昵称(如果有,则只是名称)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56191362/