假設(shè)一個(gè)問卷的在線答題問卷可以設(shè)置答題人所屬部門的id列表,假設(shè)為 ?1,2,3,5,6(部門id是1,2,3,5,6的人可以答題)職員可以屬于多個(gè)部門,也可以有所屬部門的id列表,假設(shè)為6,7,8那么我現(xiàn)在要查詢出能夠有權(quán)限答題的職員的集合,該怎么來寫這個(gè)sql。select * from staff where pardment ?= 1 or padment like %,1,% or pardment like %,1% or pardment like %1,%主要是如果只用一個(gè)like的話 ? 1可能會(huì)同時(shí)匹配到12,13,14,15而且職員也可以屬于多個(gè)部門。 ??簡化的sql該如何寫?
3 回答

產(chǎn)品經(jīng)理不是經(jīng)理
TA貢獻(xiàn)481條經(jīng)驗(yàn) 獲得超143個(gè)贊
select?*?from?staff? where?concat(',',department_id_list,',')? regexp?( ????select?concat(',(',replace(q.department_id_list,',','|'),'),')?from?question?q ????where?question_naire_id='xxx' );

產(chǎn)品經(jīng)理不是經(jīng)理
TA貢獻(xiàn)481條經(jīng)驗(yàn) 獲得超143個(gè)贊
你員工和部門是多對(duì)多關(guān)系。你還是把表結(jié)構(gòu)貼出來吧。