加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2021-08-28 03:45:01 所属栏目:大数据 来源: https://www.jb51.cc
导读:我有一个看起来像这样的数据库集 Table: Notes nid | forDepts -------------- 1 | 1;2;4 2 | 4;5Table: Positions id | name -------------- 1 | Executive 2 | Corp Admin 3 | Sales 4 | Art 5 | Marketing 如果forDepts中的数据用逗号分隔,则此查询将起作

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

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, ';', ',') )

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读