[英]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.