为啥if函数中写mysql不起作用?

语句如下:

select * from test where 1=1 

 ${if(GETUSERJOBTITLES() ='组长',"and 负责人 in (select DISTINCT 负责人 from test where 职务 in("亚马逊销售"))", "and 负责人 in ('"+ fine_username+"')")          

}  

执行之后感觉and 负责人 in (select DISTINCT 负责人 from test where 职务 in("亚马逊销售")) 不生效。

请大佬指点

FineReport yzm169581 发布于 2023-1-29 15:54 (编辑于 2023-1-30 09:29)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
runnerLv7资深互助
发布于2023-1-29 16:20(编辑于 2023-1-29 16:20)

select * from test where 1=1 

 ${if(GETUSERJOBTITLES() ='组长',"and 负责人 in (select DISTINCT 负责人 from test where 职务 in('亚马逊销售'))", "and 负责人 in ('"+ fine_username+"')")          

}  

多了个括号

  • yzm169581 yzm169581(提问者) 去掉多余的那个括号还是不行。我直接把 select DISTINCT 负责人 from test where 职务 in(\'亚马逊销售\')这个语句换成一个具体的值 就结果正确,但是写了一个语句就感觉返回的结果是全部
    2023-01-29 16:29 
  • yzm169581 yzm169581(提问者) 然后把语句中的参数去掉 直接在mysql中执行 结果也是正确的。 select * from test where 1=1 and 负责人 in (select DISTINCT 负责人 from test where 职务 in(\'亚马逊销售\'))
    2023-01-29 16:31 
  • runner runner 回复 yzm169581(提问者) 报错了嘛?
    2023-01-29 16:42 
  • yzm169581 yzm169581(提问者) 回复 runner 没有报错 就是结果不对
    2023-01-29 17:40 
  • runner runner 回复 yzm169581(提问者) 那就是你的条件,你看看吧
    2023-01-29 17:48 
最佳回答
0
shirokoLv6资深互助
发布于2023-1-29 15:58(编辑于 2023-1-29 16:01)

--

最佳回答
0
luojian0323Lv7资深互助
发布于2023-1-29 15:59

in("亚马逊销售")  改成in ('亚马逊销售')

最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-1-29 16:38
最佳回答
0
爱喝柠檬茶的小李Lv5见习互助
发布于2023-1-30 11:51

SQL语句应该没有问题,但是你的当前的账户预览报表,传递的也是你当前账号的部门信息和用户信息,是不是这里有问题?

  • 5关注人数
  • 470浏览人数
  • 最后回答于:2023-1-30 11:51
    请选择关闭问题的原因
    确定 取消
    返回顶部