簡體   English   中英

MySQL在where子句中的情況

[英]MySQL case in where clause

我的WHERE子句中的CASE語句存在可疑的邏輯錯誤,但我看不到問題。

SELECT a_id, a_name, a_folder_flag
FROM table_a
LEFT JOIN table_b ON table_a.a_id = table_b.b_a_id
WHERE a_status_id = 1
AND (
CASE
    WHEN a_access_flag = 1
    THEN b_usr_id = 1 OR b_grp_id = 2
    END )
GROUP BY a_id

基本上,我想從table_a獲取所有記錄,但是如果a_access_flag1則需要在CASE語句中應用其他where子句過濾。

目前,當我包含CASE語句時,它返回0行。

where子句中, case沒有多大意義。 但是您可以將其轉換為邏輯。 嘗試

WHERE a_status_id = 1
AND 
(
  a_access_flag <> 1
  OR (b_usr_id = 1 OR b_grp_id = 2)
)

暫無
暫無

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

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