【发布时间】:2014-11-25 09:14:56
【问题描述】:
我使用 MySQL 选择查询来获取地址标签的人员姓名和地址。 可能不止一个人住在同一个地址,所以我做了一个 GROUP CONCAT 将他们的名字与一个地址结合起来。
这正确地给了我这样的称呼
- Sally G Bloggs 夫人和 Fred Smith 先生
这很好,但它也给了我
- 让·布朗夫人和哈里·布朗先生
这很糟糕,因为姓氏是一样的,但它却被重复了。
有没有办法做 GROUP_CONCAT 行,这样我就可以得到重复的姓氏只显示一次 例如
- Sally G Bloggs 夫人和 Fred Smith 先生
- 让夫人和哈里布朗先生
我使用的sql的重要一点是
SELECT
GROUP_CONCAT(
CONCAT_WS ( ' ', title , forname_1 , forename_2, surname )
SEPARATOR ' & '
) AS Salutation,
addresses.the_address
FROM
people
JOIN
addresses
ON
addresses.address_id = people.address_id
GROUP BY
people_address_id
(这篇文章mysql GROUP_CONCAT duplicates 展示了如何从仅涉及一个字段的 Group_concat 中删除重复项,但我看不到如何使用多字段 concat 的一部分和这个 mysql GROUP_CONCAT DISTINCT multiple columns 提供了一个解决方案,但我使用它时遇到语法错误
GROUP_CONCAT(DISTINCT CONCAT_WS ( ' ', title , forname_1 , forename_2, surname ) GROUP BY surname SEPARATOR ' & ') AS 问候,
【问题讨论】:
标签: mysql duplicates group-concat