【发布时间】:2021-07-27 23:20:46
【问题描述】:
在一个表中,我有一个城市列表,在另一个表中是客户列表。在客户端上,我有一个 varchar 列,用于标识以逗号分隔的城市列表(例如:“2,3,4”)。
当我尝试列出客户的城市时,它只显示列表的第一个城市。 似乎在值上添加了一些引号,例如:
选择 GROUP_CONCAT(city.name) 从 city.id_city in ('2,3,4') 所在的城市
¿如何避免这种情况?
https://dbfiddle.uk/?rdbms=mysql_5.6&fiddle=a70c667e820c3208053b324075b0462c
CREATE TABLE `city` (
`id_city` int(11) NOT NULL,
`name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id_city`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `client` (
`id_client` int(11) NOT NULL,
`name` varchar(45) DEFAULT NULL,
`cities` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id_client`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO city (id_city,name) VALUES ('1','New York');
INSERT INTO city (id_city,name) VALUES ('2','Boston');
INSERT INTO city (id_city,name) VALUES ('3','San Diego');
INSERT INTO city (id_city,name) VALUES ('4','Seatle');
INSERT INTO city (id_city,name) VALUES ('5','Chicago');
INSERT INTO client (id_client,name,cities) VALUES ('1','Client_1','2,3,4');
select client.id_client, client.name, (select GROUP_CONCAT(city.name)
from city where city.id_city in (client.cities)) as cities from client;
【问题讨论】:
标签: mysql group-concat