gpt4 book ai didi

mysql - 存储过程中的 for 循环

转载 作者:行者123 更新时间:2023-11-29 12:28:48 25 4
gpt4 key购买 nike

我有三个表、角色、role_privillages 和模块:

roles

id name
1 Super admin
2 Sub admin
3 Viewer

role_privillages

id role_id module_id
1 1 1
2 1 2
3 1 3
4 2 1
5 2 4
6 3 3
7 3 1

modules

id name
1 Users management
2 Roles Management
3 Content Management
4 Texture Management

运行程序后,我应该得到如下结果

id   name           assigned_modules
1 Super Admin Users management, Roles management, Content Management
2 Sub Admin Users management, Texture management
3 Viewer Content Management, User Management

可以通过存储过程吗?这样的程序执行时间会不会太长?

最佳答案

类似的东西应该可以工作,您可以根据需要在 View 或过程中定义:-

   select 
r.id
, r.name
, group_concat(m.name) as assigned_modules
from roles r
inner join role_privileges p on r.id = p.role_id
inner join modules m on m.id = p.module_id
group by r.id, r.name

那么,回答你的问题:

  • 是的,可以在存储过程中,甚至在 View 中
  • 执行时间取决于许多因素(索引、数据量)数据等)

关于mysql - 存储过程中的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27901890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com