Bonjour,

J'ai une requête qui fonctionne bien si j'utilise une concaténation classique comme :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
$req="select .... from table group by itemId
having (...) order by";
if($condition1) $req.=" itemId desc";
if($condition2) $req.=" itemName asc";

L'utilisateur à des paramètres, comme "l'ordre d'affichage des publications", c'est un champs "autorised" JSON sous forme :{"pub":{"order":{"type":"newest"}},...}, ce que je veux c'est d'afficher ses publications en fonction de ses paramètres, mais quand j'essaies de remplacer les conditions PHP par une case mysql, l'ordre n'est jamais correcte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
$req="select .... from table group by itemId
having (...) 
order by 
(case when  json_extract(autorised,'$.pub.order.type')= 'newest' then itemId end) desc,
(case when  json_extract(autorised,'$.pub.order.type')= 'oldest' then itemName end) asc"