2013-06-29 52 views
-4

我想检查我的ID = 4是从MySQL在结果中,但在最后一排没有,你可能不明白我要求的笑,让我现在解释一下:MySQL的结果过滤

我已经ID = 4硬编码

我有MySQL的SELECT语句,如:

SELECT * FROM TABLE WHERE GROUP_ID = 10 AND ID = 4 AND (LAST OF THE RECORD FROM THAT GROUP_ID IS NOT (!=) (NOT EQUAL) (IS DIFFERENT) THEN 4 

无法解释它简单

+2

请不要发表两次相同的问题。 http://stackoverflow.com/questions/17380263/how-to-check-if-id-is-within-all-the-results-form-mysql-but-not-in-last-row – fancyPants

+0

什么字段不应该等于4? ID? –

+0

YES ID FIELD必须= 4,但不是组中的最后一个 –

回答

0

我认为你正在寻找这样的查询:

SELECT 
    yourtable.GROUP_ID, 
    CASE WHEN 
    SUM(yourtable.UID=s.max_uid AND yourtable.ID!=4)=1 
    AND SUM(yourtable.UID!=s.max_uid AND yourtable.ID!=4)=0 
    THEN 'okay' ELSE 'no' END 
FROM 
    yourtable INNER JOIN 
    (SELECT GROUP_ID, MAX(UID) max_uid 
    FROM yourtable 
    GROUP BY GROUP_ID) s 
    ON yourtable.GROUP_ID = s.GROUP_ID 
GROUP BY 
    yourtable.GROUP_ID 

请参阅小提琴here