2011-07-12 64 views
0

我在順序上遇到困難。它給了我所需要的所有信息,但同齡兒童不按字母順序排列。MySQL,如何顯示按字母順序列出的同齡兒童和兒童的降齡?

我需要一個列表,顯示每個孩子在查詢爲 運行當天的姓名和年齡(以年爲單位)。 該清單應按年齡(即最早的兒童優先)的降序排列,並用 同姓年齡的兒童按姓氏字母順序排列。

這裏是我的語法

SELECT *, TIMESTAMPDIFF(YEAR, child_dob, CURRENT_TIMESTAMP) AS age 
FROM Children 
ORDER BY child_dob, child_sname, child_fname; 

我很堅持,希望有人能擺脫光請。

感謝

回答

0

你被child_dob訂購,這大概是一個日期字段,而不是由age(這是孩子的週歲)。

ORDER BY age DESC, child_sname, child_fname 
1

你忘了兩件事情:

  1. 你需要按年齡,而不是出生日期 - 除非你真的只想要按姓氏出生在完全相同的天兒訂購。
  2. 要首先顯示最早的兒童,您需要按年齡排序使用DESC關鍵字。

這裏是正確的查詢:

SELECT *, TIMESTAMPDIFF(YEAR, child_dob, CURRENT_TIMESTAMP) AS age 
FROM Children 
ORDER BY age DESC, child_sname, child_fname; 
0
SELECT *, TIMESTAMPDIFF(YEAR, child_dob, CURRENT_TIMESTAMP) AS age 
FROM Children 
ORDER BY age, child_sname, child_fname;