gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:30:56 25 4
gpt4 key购买 nike

我需要有关我将称为“app_Update_Users”的应用程序中的 SELECT 语句的帮助。此应用程序旨在更新用户表中的记录。应用代码引用了下表:

  • 组织
  • 用户

States 表包含美国所有 50 个州的列表。 Counties 表包含加利福尼亚州 58 个县的列表。 Organization 表包含可能位于任何州并在一个或多个加利福尼亚县提供服务的组织列表。添加或更新用户记录时,我想根据组织所在的州和提供服务的县过滤组织列表。

该应用程序具有三个选择类型的语句,用于在用户记录中创建属性选择列表。我已经编写了适用于前两个语句的代码,但我在处理第三个语句的代码时遇到了问题。这些语句引用的字段是: - 美国 - u县 - u组织

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;

Organizations 表中的记录可以在 oCounties 字段中列出多个县,因为一个组织可以在多个县开展业务。因此,当前使用以下代码选择 uOrganization 字段的选择列表选项:

SELECT oName
FROM Organizations
WHERE oCounties LIKE '%{uCounty}%'
ORDER BY oName ASC ;

我还可以使用以下代码根据记录所在的州选择 Organizations 表中的记录:

SELECT oName, oName
FROM Organizations
WHERE oState = '{uState}'
ORDER BY oName ASC ;

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

以下如果。 . .然后 。 . . 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 - 使用 IF … THEN … ELSE 在两个 SELECT 查询之间进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14554753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com