sql server转mysql,有一个语句不会求sql大神
SELECT rp.moduleid,convert(varchar,( SELECT ','+p2.popedomCode FROM Manage_user mu2 LEFT JOIN DRolePopedom rp2 ON mu2.usertype = rp2.RoleId LEFT JOIN DPopedom p2 ON rp2.PopedomId = p2.popedomId
WHERE
rp.moduleid=rp2.moduleid and rp.RoleId=rp2.RoleId and mu2.userid=mu.userid for xml path('')
)) popedomCode
FROM
Manage_user mu
LEFT JOIN DRolePopedom rp ON mu.usertype = rp.RoleId
LEFT JOIN DPopedom p ON rp.PopedomId = p.popedomId
WHERE
mu.userid = ?
WHERE
rp.moduleid=rp2.moduleid and rp.RoleId=rp2.RoleId and mu2.userid=mu.userid for xml path('')
)) popedomCode
FROM
Manage_user mu
LEFT JOIN DRolePopedom rp ON mu.usertype = rp.RoleId
LEFT JOIN DPopedom p ON rp.PopedomId = p.popedomId
WHERE
mu.userid = ?
GROUP BY rp.moduleid,rp.RoleId,mu.userid
这事sqlserver的语句 现在知道conver mysql没有varchar 我该为char 放在后面 但还是报错。求mysql应该怎么写
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
该sql语句表现出来的问题如下:
一 mu2.userid=mu.userid for xml path('') 字段后面有空格;
二 SELECT ','+p2.popedomCode 应该改为 select concat(',',p2.popedomCode);
三 这个sql语句中没有看到别名为rp的表;
mysql是有varchar类型的;
mysql连接操作或者行转列、列转行常用函数是concat、concat_ws、group_concat
参考自:MySQL行转列、列转行常用函数用法介绍 http://www.data.5helpyou.com/article388.html
其实我感觉是for xml path的问题
回复
那就group_concat
@北极心 依然报错 我才来这里提问的