Table: Notes
nid | forDepts
--------------
1 | 1;2;4
2 | 4;5
Table: Positions
id | name
--------------
1 | Executive
2 | Corp Admin
3 | Sales
4 | Art
5 | Marketing
如果forDepts中的数据用逗号分隔,则此查询将起作用
SELECT a.nid,
GROUP_CONCAT(b.name ORDER BY b.id) DepartmentName
FROM Notes a
INNER JOIN Positions b
ON FIND_IN_SET(b.id, a.forDepts) > 0
GROUP BY a.nid
有没有办法将它与分号分隔符匹配?或者有更好的方法吗?我的桌子都很大(5336和930行).
我可以做2个查询,然后爆炸;并相应地匹配,但如果有一种更好的方法可以在单个查询中完成,那将是很好的.
这是我的sqlfiddle
解决方法:
你可以替换commata:
FIND_IN_SET(b.id ,REPLACE(a.forDepts, ';', ',') )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。