gpt4 book ai didi

MySQL group_concat 和 concat 姓氏、姓氏和头衔

转载 作者:行者123 更新时间:2023-11-29 11:26:37 25 4
gpt4 key购买 nike

我有两张 table

地点

id | name   | year |
--------------------
1 | Berlin | 1966 |
2 | Paris | 2012 |

成员(member)

id | title | surname | lastname | idPlace |
-------------------------------------------
1 | Dr | Maxi | Bax | 1 |
2 | | Ameli | Steifer | 2 |
3 | | Wonder | Woman | 1 |
4 | | Harry | Barry | 2 |

结果我想得到

name    | year | members                     |
----------------------------------------------
Berlin | 2011 | Dr Maxi Bax, Wonder Woamn |
Parins | 2050 | Ameli Steifer, Harry Barry |

我成功地使用了这个 SQL

SELECT p.name, p.year, 
GROUP_CONCAT(CONCAT(m.title, " " ,m.surname," ", m.lastname) SEPARATOR ', ')
AS members FROM places p INNER JOIN member m on p.id = m.idPlace
GROUP BY m.idPlace

结果如下

name    | year | members                     |
----------------------------------------------
Berlin | 2011 | Dr Maxi Bax, Wonder Woamn |
Parins | 2050 | Ameli Steifer, Harry Barry |

神奇女侠哈利·巴里之前产生一个额外的空格。是否可以在没有额外空格的情况下获得结果?

最佳答案

这是因为 CONCAT 函数中存在空格。 Wonder WoamnHarry Barry 都没有标题,因此 CONCAT 函数方法返回 [emtpy-string][space]Wonder[space][Woamn] 。当您将其与带有尾随空格的 GROUP_CONCAT 组合时,它会显示为两个空格。

此问题的一种解决方案是返回标题中的空格,当且仅当标题不为空时。

CONCAT(IF(m.title IS NULL, NULL, CONCAT(m.title, "")))

您的其他专栏也可能存在类似的问题。或者,您可以运行 REGEXP 搜索/替换来替换任何多余的空格,但这完全是另一种情况,我建议不要这样做。

关于MySQL group_concat 和 concat 姓氏、姓氏和头衔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38103421/

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