2016-04-09 30 views
1

私はmysqlに友人リストを取得するためのクエリを書いています。クエリが結果を正しく取得しています。複数の "AND"条件が正しく動作していません

これは私が使用していますクエリです:

:私は、条件以下の条件を追加...今、私は私が削除したチャットの友人を非表示にすることについては

SELECT (
     SELECT COUNT(*)    
     FROM 
      cpo_conversation_reply    
     WHERE 
      user_id_fk = u.id 
      AND user_id_rec = $user_id    
      AND read_unread_status =0 
      AND c.property_id = p_id 
    ) AS unread_msg, 
    u.id AS user_id, c.c_id, u.first_name, u.last_name, u.user_name, 
    u.online_status AS loginstatus, c.user_one, c.user_two, u.user_img, 
    c.property_id, p.locality, p.city, c.online_status   
FROM 
    cpo_conversation c, 
    property_register u, 
    property_for_sale p   
WHERE 
    CASE 
     WHEN c.user_one = '$user_id' THEN c.user_two = u.id      
     WHEN c.user_two = '$user_id' THEN c.user_one = u.id     
    END    
    AND (
     c.user_one = '$user_id' 
     OR c.user_two = '$user_id'    
    )          
    AND p.id = c.property_id   
ORDER BY 
    c.c_id DESC 

c.hide_chat_1 != '1' OR c.hide_chat_2 != '1' 

後、このクエリは、このようなものです:

SELECT (
     SELECT COUNT(*)     
     FROM 
      cpo_conversation_reply     
     WHERE 
      user_id_fk = u.id 
      AND user_id_rec = $user_id     
      AND read_unread_status =0 
      AND c.property_id = p_id     
    ) AS unread_msg, 
    u.id AS user_id, c.c_id, u.first_name, u.last_name, u.user_name, 
    u.online_status AS loginstatus, c.user_one, c.user_two, u.user_img, 
    c.property_id, p.locality, p.city, c.online_status     
FROM 
    cpo_conversation c, 
    property_register u, 
    property_for_sale p     
WHERE 
    CASE 
     WHEN c.user_one = '$user_id' THEN c.user_two = u.id     
     WHEN c.user_two = '$user_id' THEN c.user_one = u.id     
    END 
    AND (
     c.user_one = '$user_id'     
     OR c.user_two = '$user_id'     
    )     
    AND (
     c.hide_chat_1 != '1'     
     OR c.hide_chat_2 != '1'     
    )     
    AND p.id = c.property_id     
ORDER BY 
    c.c_id DESC 

しかし、チャットステータスを非表示にする友人は1です。

誰もがこれについて私を助けることができますか?

答えて

0

使用この代わりに:

c.hide_chat_1 <> '1' 
OR c.hide_chat_2 <> '1' 
+0

そのc.hide_chat_1とc.hide_chat_2のように定義されている何 –

+0

@Azad Chouhanを動作していませんか?数値型の場合は 'c.hide_chat_1 <> 1またはc.hide_chat_2 <> 1'でなければなりません。 – Tibrogargan

+0

はい数字ですが、数値として使用していますが、それでも私はすべてのレコードを表示しています。 hide_chat_1またはhide_chat_2の人物が0であることを表示したい –

関連する問題