2010-08-12 3 views
0

Est-il possible d'adapter cette déclaration mysql:champs de plage de groupe dans mysql?

$sql = "SELECT u.user_registered, 
       u.first, 
       u.last, 
       c.class_grade 
     FROM users u 
     JOIN classes c on 
      c.class_id = u.class_id and 
     WHERE user_registered >= '". $from . "' 
      and user_registered < '". $to . "' 
     ORDER by u.last " ; 

Je veux notes du groupe dans une catégorie d'âge: 'jeunes' et 'vieux'

si c.class_grade = 1,2, ou 3 , alors age = 'jeune' si c.class_grade = 4,5, ou 6, alors age = 'vieux'

Enfin ajouter cette nouvelle catégorie "âge" à l'ORDER BY

Répondre

0
SELECT u.user_registered, 
       u.first, 
       u.last, 
       c.class_grade, 
       CASE WHEN c.class_grade IN (1,2,3) THEN 'young' WHEN c.class_grade IN (4,5,6) THEN 'old' END AS 'Age' 
     FROM users u 
     JOIN classes c on 
      c.class_id = u.class_id and 
     WHERE user_registered >= '". $from . "' 
      and user_registered < '". $to . "' 
     ORDER by u.last, 
       CASE WHEN c.class_grade IN (1,2,3) THEN 'young' WHEN c.class_grade IN (4,5,6) THEN 'old' END 
0

Vous pouvez essayer ceci:

$sql = "SELECT u.user_registered, 
      u.first, 
      u.last, 
      c.class_grade, 
      IF(c.class_grade IN (1, 2, 3), 'young', 'old') AS age 
    FROM users u 
    JOIN classes c on 
     c.class_id = u.class_id and 
    WHERE user_registered >= '". $from . "' 
     and user_registered < '". $to . "' 
    ORDER by u.last, age " ; 
+0

cela fonctionne comme un charme !! –

Questions connexes