sql问题

数据表中,

如果登录的账号为121p3,则显示对应的省份为浙江省

如果登录的账号为121p4,显示的对应的省份为重庆市,海南省

如果登录的是账号是 -1(不在数据表中的账号)则显示全部省份,要怎么写

image.png

FineReport 帆软用户CYJXJ 发布于 2023-10-6 10:18 (编辑于 2023-10-6 10:31)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-10-6 10:22(编辑于 2023-10-6 10:35)

select * from 表名称

where 1=1

${if(fine_username="A","and 省份 in('北京市','上海市')",if(fine_username="B","and 省份 in('重庆市','海南省')",""))}

----------------修改后,直接查询表中的数据即可-------------

select * from 表名称

where 1=1

and 省份 in(select 省份 from city where 1=1 and  id='${fine_username}' group by 省份)

-------------------------------------------

这样会跟着登陆账号去你权限表查询数据了

  • 帆软用户CYJXJ 帆软用户CYJXJ(提问者) 这是一个例子,有超级无敌多的登录账号,要怎么设置可以通用?
    2023-10-06 10:27 
  • CD20160914 CD20160914 回复 帆软用户CYJXJ(提问者) 那就要多个账号判断,不然就你自己设置一个权限表去匹配了,就是用户登陆后,和你的权限表匹配账号,再看这个账号是哪些省市直接传参数进去!!
    2023-10-06 10:30 
  • CD20160914 CD20160914 回复 帆软用户CYJXJ(提问者) 超级无敌多(到底有多少,几个亿还是几百个亿的账号??那不可能),你只判断你说的1-3或者1-10个账号就行了,如果真的要判断的非常多就自己建立一个权限表,你要判断的账号有多少?
    2023-10-06 10:31 
  • 帆软用户CYJXJ 帆软用户CYJXJ(提问者) 不固定,几百个,不要权限表的形式可以实现吗?if?
    2023-10-06 10:34 
  • CD20160914 CD20160914 回复 帆软用户CYJXJ(提问者) 我上面修改了语句,下面加粗的部分就行了。
    2023-10-06 10:36 
最佳回答
0
用户k6280494Lv6资深互助
发布于2023-10-6 10:29(编辑于 2023-10-6 10:35)

权限细粒度参数控制

用角色判断

举个例子,你把可以访问浙江省的人的账号设置为一个角色A,

在数据集里面

select * from 表名称

where 1=1

${if(find("角色A",fr_authority)>0,"and 省份 ='浙江省'","")}

  • 帆软用户CYJXJ 帆软用户CYJXJ(提问者) 可以直接在数据集里面控制吗?
    2023-10-06 10:30 
  • 用户k6280494 用户k6280494 回复 帆软用户CYJXJ(提问者) 可以啊,跟用户名判断一样
    2023-10-06 10:31 
  • 帆软用户CYJXJ 帆软用户CYJXJ(提问者) 回复 用户k6280494 我完善了一下问题,需要怎么写啊,有点摸不清
    2023-10-06 10:32 
  • 用户k6280494 用户k6280494 回复 帆软用户CYJXJ(提问者) 更新在回答里了,这样这个角色下的所有人都是这个权限
    2023-10-06 10:37 
  • 2关注人数
  • 240浏览人数
  • 最后回答于:2023-10-6 10:35
    请选择关闭问题的原因
    确定 取消
    返回顶部