未合併情況
select
a.id,
b.name
as "role"
from
sys_user a
inner join sys_user_role c on a.id=c.user_id
inner join sys_role b on b.id =c.role_id
where
a.del_flag=0
andb.del_flag=0
結果id role
1 系統管理員
1 測試角色
2 系統管理員
2 測試角色
9 系統管理員
9 測試角色
d11828f3dbf148829287aeb637cbf6ec系統管理員
d11828f3dbf148829287aeb637cbf6ec測試角色
fe55ff534d23453ab66fda0912f6018d系統管理員
fe55ff534d23453ab66fda0912f6018d測試角色
合併情況
select id,group_concat(role) as "rolelist" from
(select
a.id,
b.name
as "role"
from
sys_user a
inner join sys_user_role c on a.id=c.user_id
inner join sys_role b on b.id =c.role_id
where
a.del_flag=0
andb.del_flag=0)d
group by id
結果id rolelist
1 測試角色,系統管理員
2 測試角色,系統管理員
9 測試角色,系統管理員
d11828f3dbf148829287aeb637cbf6ec測試角色,系統管理員
fe55ff534d23453ab66fda0912f6018d測試角色,系統管理員
或者select a.id,group_concat(b.name) as rolelist
from sys_user a
inner join sys_user_role c on a.id = c.user_id
inner join sys_role b on b.id = c.role_id
where
a.del_flag=0
andb.del_flag=0
group by a.id
結果也一樣
mysq比較時間
在oracle中使用時間函式to date習慣了,在oracle中時間的加減也非常簡單,直接加減即可。在mysql中時間的函式很多,非常自由。在專案中經常用到的就是時間的加減。比如60天前,oracle中直接就是sysdate 60,mysql中就不行。對時間加減的函式是 加adddate 減sub...
mysq基礎優化
skip name resolve skip locking skip innodb skip bdb key buffer 1g記憶體推薦設定為256m,2g記憶體推薦設定為512m wait timeout 3或者5 2g記憶體推薦設定為5 max connections 如果訪問量很大可以設定...
mysq索引類別
索引都是在儲存引擎層面實現的 1.btree索引 使用b tree資料結構建立的索引,索引值都是按順序存放的,儲存引擎不需要再全表掃瞄,取而代之的是從索引的根節點開始掃瞄,根節點存放了子節點的指標,隨著向下層查詢,隨著查詢值和節點值的比較 指標中右節點葉值的上下限 最終找到記錄。btree索引可以選...