0
過濾器我有一個表訂單(OID,訂單類型,ODEP,ReqUser)MySQL查詢:使用條件
我想篩選象下面這樣的邏輯:
SELECT * FROM Orders if (Ordertype='confidential') filter by ReqUser='$UserID' else filter by ODep
我不知道是否有可能!
過濾器我有一個表訂單(OID,訂單類型,ODEP,ReqUser)MySQL查詢:使用條件
我想篩選象下面這樣的邏輯:
SELECT * FROM Orders if (Ordertype='confidential') filter by ReqUser='$UserID' else filter by ODep
我不知道是否有可能!
在這種情況下,你通常可以用(a AND b) OR ((NOT a) AND c)
取代if a then b else c
,就像這樣:
SELECT *
FROM Orders
WHERE (Ordertype='confidential' AND ReqUser='$UserID')
OR (Ordertype<>'confidential' AND ODep)
;
另外,根據您的數據,這可能會工作,以及:
SELECT *
FROM Orders
WHERE ReqUser='$UserID'
OR (Ordertype<>'confidential' AND ODep)
;
或本:
SELECT *
FROM Orders
WHERE ODep AND (ReqUser='$UserID' OR Ordertype <> 'confidential')
;
不,如果請求的ReqUser不存在,該怎麼辦? – dnoeth
@dnoeth然後,它會根據任何「ODep」計算結果進行過濾。 – Uueerdo
您可能希望在第二個「OR」條件中包含Ordertype <>'confidential'條款。 – Marvin