[ABI 5.2] mysql 根据不同的值,使用不同的where条件

701
4

怕黑的小张plus 初学数据Lv2

发表于2023-11-23 15:55

悬赏30

已解决

楼主
select TITLE_ title,CONTENT_REFER location,PUBLIC_ONE one,PUBLIC_TWO two,EVENT_OVERVIEW detail,HEAT_VALUE degree,PUBLISH_TIME time from F_YQSB WHERE TENDENCY='负面' and HEAT_VALUE>10 and
case
        when '<#=@class#>'=1 then AND PROVINCE_NAME='广西'
        when '<#=@class#>'=2 then  AND CONTENT_REFER='<#=@name#>'
        when '<#=@class#>'=3 then AND QU_XIAN='<#=@name#>'
        when '<#=@class#>'=4 then AND PUBLIC_ONE='<#=@name#>'
        when '<#=@class#>'=5 then AND PUBLIC_two='<#=@name#>'
end
这种应该如何实现

最近看过此主题的会员

esen_4KV7VZK2YIQI

ESENSOFT官方技术支持

chestnut

最佳答案
关帖总结:
sql中有根据字段筛选表的条件,不能直接根据库表新建主题表。
原条件改为:
case when @class =1 and PROVINCE_NAME='广西' then 1 when '@class' =2 and NAME='@name' then 1....
4个回答

只看楼主

chestnut 数据领袖Lv6

发表于2023-11-23 17:55

只看该作者

取消 关注该作者的回复

沙发

根据库表F_YQSB 新建主题表,在过滤条件中用case when判断,当参数@cs选择不同值时,返回对应的条件。

  1. case
  2.         when @class=1 then "主题表.PROVINCE_NAME='广西'"
  3.         when @class=2 then "主题表.CONTENT_REFER=@name"
  4.         when @class=3 then "主题表.QU_XIAN=@name"
  5.         when @class=4 then "主题表.PUBLIC_ONE=@name"
  6.         when @class=5 then "主题表.PUBLIC_two=@name"
  7. end
复制代码


怕黑的小张plus 初学数据Lv2

发表于2023-11-24 09:17

只看该作者

取消 关注该作者的回复

板凳

chestnut 发表于 2023-11-23 17:55
根据库表F_YQSB 新建主题表,在过滤条件中用case when判断,当参数@cs选择不同值时,返回对应的条件。

这种不行哦,我前面还有根据字段筛选表这些,sql已经写好了,case when 中把写成这样就可以了:case when @class =1 and PROVINCE_NAME='广西' then 1 when '@class' =2 and NAME='@name' then 1....

chestnut 数据领袖Lv6

发表于2023-11-24 11:17

只看该作者

取消 关注该作者的回复

地板

chestnut 数据领袖Lv6

发表于2023-11-23 15:55

只看该作者

取消 关注该作者的回复

5#

关帖总结:
sql中有根据字段筛选表的条件,不能直接根据库表新建主题表。
原条件改为:
case when @class =1 and PROVINCE_NAME='广西' then 1 when '@class' =2 and NAME='@name' then 1....

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号