gpt4 book ai didi

mysql - 将 id 串联转换为标签串联

转载 作者:行者123 更新时间:2023-11-29 09:46:40 24 4
gpt4 key购买 nike

我想找到 SQL 表达式,将 id 串联转换为匹配标签串联。

这是示例:

Table user
id name hobbies
1 Mike 2,5,4
2 Paul 1,5

Table hobbies
id label
1 tennis
2 cinema
3 entomology
4 travel
5 programming

Result expected
id name hobbies
1 Mike cinema,programming,travel
2 Paul tennis,programming

我尝试使用子请求执行操作,但无法正确实现。

编辑:

在Tims回答之后,我发现我在正确搜索兴趣爱好方面遇到了问题

SELECT
u.id,
u.name,
GROUP_CONCAT(h.label) AS hobbies
FROM user u
LEFT JOIN hobbies h
ON FIND_IN_SET(h.id, u.hobbies) > 0
WHERE h.label LIKE '%travel%'
GROUP BY
u.id,
u.name
ORDER BY
u.id;

未返回正确的结果:

Result returned
id name hobbies
1 Mike travel

Result expected
id name hobbies
1 Mike cinema,programming,travel

谢谢。

最佳答案

您应该避免在表中存储 CSV,但这是一种继续操作的方法:

SELECT
u.id,
u.name,
GROUP_CONCAT(h.label) AS hobbies
FROM user u
LEFT JOIN hobbies h
ON FIND_IN_SET(h.id, u.hobbies) > 0
GROUP BY
u.id,
u.name
HAVING
COUNT(CASE WHEN h.label = 'travel' THEN 1 END) > 0
ORDER BY
u.id;

这里的神奇之处在于连接条件,它将给定的用户记录链接到hobbies表中的记录,条件是用户有这个爱好。

关于mysql - 将 id 串联转换为标签串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55536355/

24 4 0