mysql select elseif_mysql – 使用IF … THEN … ELSE在两个SELECT查询之间进行选择

我需要一个应用程序中的SELECT语句的帮助,我将称之为’app_Update_Users’.此应用程序旨在更新Users表中的记录.应用程序代码引用了下表:

>国家

>县

>组织

>用户

States表包含美国所有50个州的名单. Counties表包含加利福尼亚州的58个县的列表.组织表包含可能位于任何州且在一个或多个加利福尼亚州提供服务的组织列表.在添加或更新用户记录时,我想根据组织的状态以及它们提供服务的县或县来过滤组织列表.

该应用程序有三个select-type语句,用于在Users记录中创建属性的选项列表.我编写了适用于前两个语句的代码,但我遇到了第三个语句的代码问题.这些语句引用的字段是:

– uState

– uCounty

– uOrganization

uState和uCounty字段的语句调用onChange Ajax处理来更新uOrganization字段的选项列表上的选择.使用以下代码选择前两个字段的选项列表选项:

对于uState字段:

SELECT stAbbr, CONCAT(stAbbr, ' - ', stStatePK)

FROM States

ORDER BY stAbbr;

对于uCounty字段:

SELECT cCounty, cCounty

FROM Counties

ORDER BY cCounty;

组织表中的记录可以在oCounties字段中列出多个县,因为组织可以在多个县中运行.因此,当前使用以下代码选择uOrganization字段的选项列表选项:

SELECT oName

FROM Organizations

WHERE oCounties LIKE '%{uCounty}%'

ORDER BY oName ASC ;

我还可以使用以下代码根据它们所处的状态在“组织”表中选择记录:

SELECT oName, oName

FROM Organizations

WHERE oState = '{uState}'

ORDER BY oName ASC ;

但是,我想用于选择uOrganization字段选项的逻辑将组合这两个代码片段.用简单的英语,它会是这样的:“如果uState字段设置为’California’,则根据uCounty字段中的值从Organizations表中选择记录.如果uState字段未设置为’California’ ,然后根据uState字段中的值从Organizations表中选择记录.

以下IF. . .然后 . . . ELSE语法得到了重点,但它不起作用:

IF uState = 'CA' THEN

SELECT oName, oName

FROM Organizations

WHERE oCounties LIKE '%{uCounty}%'

ORDER BY oName ASC ;

ELSE

SELECT oName, oName

FROM Organizations

WHERE oState = '{uState}'

ORDER BY oName ASC ;

ENDIF

编写此代码的正确方法是什么?

解决方法:

没有带有单个语句的if,你可以这样做:

SELECT oName, oName

FROM Organizations

WHERE (ustate = 'CA' and oCouties like '%{uCounty}%') or

(uState <> 'CA' and oState = '{uState}')

ORDER BY oName ASC ;

标签:mysql,select,if-statement

来源: https://codeday.me/bug/20190620/1245726.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值