微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – mysql FIND_IN_SET()用分号代替逗号

我有一个看起来像这样的数据库

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 举报,一经查实,本站将立刻删除。

相关推荐