什么';这个mysql连接有什么问题吗?

什么';这个mysql连接有什么问题吗?,mysql,join,left-join,Mysql,Join,Left Join,我在想p1.membergroupid不能很好地处理连接?如果我删除p1.membergroupids条件,则查询的工作方式与我希望的工作方式相同,只是我希望它仅显示属于组19的用户,因此类似于s。p1.membergroupids是一个多值属性 正如@muistooshort所指出的,您应该将membergroupid移动到多对多联接表中,这个问题就会消失。像这样可怕的不正常结构会给你带来数不清的痛苦!创建新联接表-成员组(成员id,组id) 如果你坚持使用这种可怕的结构,你可以用- 你怎么知

我在想
p1.membergroupid
不能很好地处理连接?如果我删除
p1.membergroupids
条件,则查询的工作方式与我希望的工作方式相同,只是我希望它仅显示属于组19的用户,因此
类似于
s。
p1.membergroupids
是一个多值属性

正如@muistooshort所指出的,您应该将membergroupid移动到多对多联接表中,这个问题就会消失。像这样可怕的不正常结构会给你带来数不清的痛苦!创建新联接表-成员组(成员id,组id)

如果你坚持使用这种可怕的结构,你可以用-


你怎么知道它不起作用,我的意思是你有什么具体的错误吗?你不应该放.19,因为它可以翻译成0.19。确保你在那里放了一个空格这不是一个错误问题,而是我没有得到我应该得到的结果。
p1.membergroupid
筛选器未应用于results@galchen你搞定了!这就是问题所在。该死的语法。谢谢:)我想说,你真正的问题是,你使用的是“多值属性”乱码,使用一个合适的关联表,启动起来会更容易、更快。
SELECT p1.userid, p1.username, p2.lids 
        FROM VB_user p1
        LEFT JOIN AB_judge_perm p2 on p1.userid = p2.userid
        WHERE p1.membergroupids LIKE '".19.",%'
        OR p1.membergroupids LIKE '%,".19."'
        OR p1.membergroupids LIKE '%,".19.",%'
        OR p1.membergroupids = '".19."'
SELECT p1.userid, p1.username, p2.lids 
FROM VB_user p1
LEFT JOIN AB_judge_perm p2
    ON p1.userid = p2.userid
WHERE FIND_IN_SET(19, p1.membergroupids)