select concat(m.menu_id, m.perms) as perms from sys_menu m left join sys_role_menu rm on m.menu_id = rm.menu_id where rm.role_id = ? order by m.parent_id, m.order_num ,以上mysql语句如何替换成sqllite语句
时间: 2024-03-09 09:50:50 浏览: 130
以下是将MySQL语句转换为SQLite语句的方法:
```
SELECT m.menu_id || m.perms AS perms
FROM sys_menu m
LEFT JOIN sys_role_menu rm ON m.menu_id = rm.menu_id
WHERE rm.role_id = ?
ORDER BY m.parent_id, m.order_num;
```
将 `concat` 函数替换为 `||`,其他语法保持不变即可。注意,SQLite中,使用 `||` 进行字符串连接,而不是使用 `concat` 函数。
相关问题
select r.id,r.name,r.role_level,r.is_del, group_concat(rm.menu_id SEPARATOR ',') as menuIds, concat( '[', group_concat(get_json_object('userId',ur.user_id,'name',du.user_name,'mobile',mobile)) ,']') as userIds from role r left join role_menus rm on rm.role_id = r.id left join user_roles ur on ur.role_id = rm.role_id left join djd_user du on ur.user_id = du.user_id where r.id = 1678361105340755969 group by r.id;
这是一个SQL查询语句,用于从表中检索与特定角色ID相关的数据。它联接了多个表,并使用group_concat和get_json_object函数对数据进行聚合和处理。具体的查询逻辑如下:
```
SELECT r.id, r.name, r.role_level, r.is_del,
GROUP_CONCAT(rm.menu_id SEPARATOR ',') AS menuIds,
CONCAT(
'[',
GROUP_CONCAT(
GET_JSON_OBJECT('userId', ur.user_id, 'name', du.user_name, 'mobile', mobile)
),
']'
) AS userIds
FROM role r
LEFT JOIN role_menus rm ON rm.role_id = r.id
LEFT JOIN user_roles ur ON ur.role_id = rm.role_id
LEFT JOIN djd_user du ON ur.user_id = du.user_id
WHERE r.id = 1678361105340755969
GROUP BY r.id;
```
该查询将返回一个包含以下列的结果集:id、name、role_level、is_del、menuIds和userIds。其中menuIds是以逗号分隔的菜单ID列表,userIds是一个包含用户ID、姓名和手机号的JSON数组。这些结果是根据指定的角色ID进行筛选和聚合的。
阅读全文