gpt4 book ai didi

mysql - 如何在 GROUP_CONCAT MySQL 中抑制重复项

转载 作者:行者123 更新时间:2023-11-30 22:56:34 25 4
gpt4 key购买 nike

我使用 MySQL 选择查询获取地址标签的人员姓名和地址。不止一个人可能住在同一个地址,所以我做了一个 GROUP CONCAT 将他们的名字和一个地址结合起来。

正确地给我这样的称呼

  • Sally G Bloggs 夫人和 Fred Smith 先生

这很好,但它也给了我

  • Jean Brown 夫人和 Harry Brown 先生

这很糟糕,因为姓氏相同但会重复。

有没有办法执行 GROUP_CONCAT 行,以便我得到重复的姓氏只显示一次例如

  • Sally G Bloggs 夫人和 Fred Smith 先生
  • Jean 夫人和 Harry Brown 先生

我使用的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 Salutation,

最佳答案

您可以在 group_concat() 中使用 'distinct' 来删除重复项。

例如,假设您有多个所有者的保单。您有一个名称列表和一个策略列表。 Alice 和 Bob 都是策略 123 的所有者,您不希望:

名字:爱丽丝,鲍勃,爱丽丝,鲍勃

您可以使用:

select group_concat(distinct names.customerNames) from names where names.policyId=policies.policyId) as 'policy owners',

在“名称”和“策略”表之间的连接中。

关于mysql - 如何在 GROUP_CONCAT MySQL 中抑制重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26125978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com