2010-08-12 32 views
0

是否有可能這個MySQL聲明適應: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 " ; 

我想組的成績爲年齡類別:「年輕人」和「老」

如果c.class_grade = 1,2或3 ,那麼年齡= '年輕' 如果c.class_grade = 4,5或6,那麼年齡= '老'

最後這個新的 「時代」 類別添加到ORDER BY

回答

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

你可以試試這個:

$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

它就像一個魅力! – 2010-08-12 14:10:51