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.
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.