簡體   English   中英

如何在SQL語句的where中使用多個值?

[英]How to use a multiple values in where in statement of SQL?

假設我有一個包含以下值的表:

ID | role | group | name
--------------------------
1  | A    | A     | John
2  | B    | A     | Paul
3  | C    | A     | Mary
4  | A    | B     | Peter
5  | B    | B     | Mark
6  | C    | B     | May
7  | A    | C     | Sam
8  | B    | C     | Samson
9  | C    | C     | Naomi

然后,假設我希望B組的用戶具有角色A,而C組的用戶具有角色C,我可以編寫如下的SQL:

select * from my_table 
where (role = 'A' and group = 'B') 
   or (role = 'C' and group = 'C')

這是可行的,但問題是,在實際情況下,這些設置將由用戶設置,並且會有很多設置。 通常,如果那只是單值查詢,我可以這樣做:

select * from my_table where id in (:id_list)

然后,我可以將ID數組直接傳遞給該語句。 有沒有一種方法可以在多個值中將where作為一組使用?

PS我將PHP與oracle數據庫一起使用,但是我認為這與請求SQL語句無關緊要。

我不知道php,但是您的SQL查詢與此等效(如果可以某種方式幫助您)。 GROUP是一個sql關鍵字,我將其更改為grp

SELECT * 
FROM   my_table 
WHERE  ( role, grp ) IN ( ( 'A', 'B' ), ( 'C', 'C' ) ); 

演示版

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM