Partage
  • Partager sur Facebook
  • Partager sur Twitter

Condition CASE sur WHERE

Anonyme
    26 août 2010 à 18:19:05

    Bonsoir à tous !

    Je cherche a faire une requête un peu étrange, dans le but de minimiser au maximum le traitement en PHP. J'ai besoin pour cela d'un WHERE <condition> sachant que la <condition> varie en fonction de la valeur d'un champs...
    Problème, la requete s'execute mais ne renvoie rien :

    SELECT mp_threads.mp_thread_id, 
    	mp_threads.mp_thread_starter_id, 
    	mp_threads.mp_thread_dest_id, 
    	mp_threads.mp_thread_subject, 
    	mp_threads.mp_thread_starter_state, 
    	mp_threads.mp_thread_dest_state, 
    	mp_threads.mp_thread_date, 
    	CASE WHEN mp_threads.mp_thread_starter_id = '.$_SESSION['mbr_id'].' THEN "starter" ELSE "dest" END AS mbr_role, 
    	members_starter.mbr_id AS mbr_id_starter, 
    	members_starter.mbr_pseudo AS mbr_pseudo_starter,
    	members_dest.mbr_id AS mbr_id_dest, 
    	members_dest.mbr_pseudo AS mbr_pseudo_dest 
    	FROM mp_threads 
    	LEFT JOIN members AS members_starter
    	ON members_starter.mbr_id = mp_threads.mp_thread_starter_id 
    	LEFT JOIN members AS members_dest 
    	ON members_dest.mbr_id = mp_threads.mp_thread_dest_id
    	WHERE (CASE WHEN mp_threads.mp_thread_starter_id = '.$_SESSION['mbr_id'].' THEN
    		mp_thread_starter_state != 2 
    	ELSE 
    		mp_thread_dest_state != 2 
    	END) 
    	AND (mp_thread_starter_id = '.$_SESSION['mbr_id'].' OR mp_thread_dest_id = '.$_SESSION['mbr_id'].') 
    	ORDER BY mp_thread_date DESC')
    


    J'ai essayé avec un HAVING, qui me semblait plus logique, mais pareil : aucun résultat retourné, alors que ça devrait...

    Merci de bien vouloir m'aider.
    • Partager sur Facebook
    • Partager sur Twitter

    Condition CASE sur WHERE

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown