2014-01-15 87 views
0

我試圖用IF ELSE Con​​dition來管理查詢。但是,如果不使用IFSE,我會使用案例。IF ELSE Mysql查詢中的條件 - PHP

我想GROUP BY通過採取對用戶類型

決定這是我的查詢。

SELECT * 
FROM users 
WHERE flag = 1 AND blockStatus = 0 
GROUP BY 
CASE userType 
    WHEN 1 THEN 
     jobId 
    WHEN 2 THEN 
     experienceId 
END 

它以某種方式獲取同一個jobId或experienceId的多個記錄。

什麼是正確的方式來實現這種情況?

SQL FIDDLE位置:

http://sqlfiddle.com/#!2/e3df6/1

+1

請提供投票的理由,這樣我可以在將來工作 –

+1

我很驚訝這個結構甚至可以工作。我認爲他們只允許靜態情況下的條件組。如果你仔細想想,group by statement適用於前面查詢的整個結果集*。應用*每行*條件是矛盾的。 – Sebas

+0

你可以使用兩個sql查詢嗎?我的意思是分兩步走? –

回答

1

如果你正在使用PHP來然後建立這個查詢爲什麼不創建一個基於PHP的數據查詢: -

$query = ($userType==1) ? "Select * from users where flag=1 and blockstatus=0 group by jobId" : "Select * from users where flag=1 and blockstatus=0 group by experienceId"; 
+0

我沒有任何$ userType –

+0

那是因爲你沒有提供代碼。但你可能有類似的東西。 – Havenard

+0

我想要的只是一個條件Group By on userType在單個查詢中。簡單的是。這部分之前我沒有任何變量。 –

1

你可以這樣試試..

SELECT * 
FROM user 
where usertype =1 group by jobid 
union 
SELECT * 
FROM user 
where usertype =2 group by experienceId