请教,操作用户有多个角色,如何拼接到SQL里?
想判断一个操作用户是否只包含两个特定权限,如果是就拼接一个查询条件到where中。
现在按照下面拼接后,($fine_role="角色A,角色B")的结果是false。
select * from table
where ${if($fine_role="角色A,角色B")," and 字段='666'","")}
$fine_role返回的是数组 格式应该是 ["角色1","角色2"]
你的应该写成这样
where ${if($fine_role=["角色A","角色B"])," and 字段='666'","")}
这样就能保证角色必须是角色A+角色B才能查询
where 1=1
${if(or(find("角色A",fine_role)>0,find("角色B",fine_role)>0)," and 字段='666'","")}