mysql list拼接 mysql拼接多條字段

2021-10-18 03:06:18 字數 1523 閱讀 4118

未合併情況

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索引可以選...