我有以下数据:
机构_no | 信用类型 |
---|---|
1 | 1 |
1 | 2 |
2 | 1 |
我有一个列表框,因此用户可以选择多个 Cred_type,他们希望能够选择 OR 或 AND 条件。
对于 OR 我有这样的 AND CRED_TYPE IN (1,2)
对于AND,我真的很摸不着头脑。他们的意思是他们想要一份具有 cred type 1 和 cred_type 2 的机构列表。也许我没有想清楚,但这是逐行的,所以这样做不会导致任何结果。
AND cred_type = 1 AND cred_type = 2 - 你不能让单行有两个不同的值,这将不会返回任何结果。
它们要求用户可以选择 10、20 或更多,因此为每个编写一堆代码并将它们全部组合起来真的很困难 - 但这是我迄今为止唯一的想法。会是这样
Select institution_no from table where cred_type = 1
UNION
Select institution_no from table where cred_type = 2
-- 这将结合两者并得到我想要的,但你可以想象其中 10 或 20 个的所有代码。
您可以使用HAVING子句。
例如:如果您有一个信用类型为 1、2、3、4、5、6 的机构列表,您可以尝试以下操作:
编辑:使用的查询
OP
这是一个解决方案,您可以在其中构建 AND 查询的 OR 查询:
这样你只需要更新凭证列表,以及当他们请求一堆 cred_types 时的计数。如果您甚至不想每次都更新计数,您可以将 cred_types 列表设为变量,并将其放在 t1 中,同时在 where 语句中计算变量的长度。