如何根据数据的值按降序对数据进行排序

时间:2013-06-10 15:02:57

标签: mysql

我想编写几个mysql查询来从mysql数据库中检索数据。

如果我解释这个问题,数据库表中有136列。表用于存储学生的信息及其技能类别。大约有6个主要类别,所有136个子类别都在其中。如果主要类别是数学,则有子类别,如应用数学,纯数学等。所有信息都包含在一个表中,没有标准化。

学生的技能水平从1-5开始计算。 5是最大的。如果我将学生姓名传入mysql查询,我想按降序打印他的主要类别和子类别。请注意,任何学生都可以关注多个主要类别。

Last Name       Web technologies - HTML Web technologies - CSS  Web technologies - XML  Web technologies - JavaScript   Web technologies - J-Query  ......
Bill            3   1   4   na  na  1   3   na  na  na  na  na  na  na  na  na
Arun            1   5   1   3   1   2   1   na  na  3   1   5   1   1   na
Soma            na  na  na  na  na  na  na  na  na  na  na  na  na  na  na  na

如果我选择Arun,我想将技能等级显示为5 5 3 3 3 1111111和各自的技能类别。

1 个答案:

答案 0 :(得分:1)

SELECT *
FROM (SELECT "Web Technologies HTML", skill_web_html skill_level
      FROM student_skills
      WHERE student_id = @id
      UNION
      SELECT "Web Technologies CSS", skill_web_css
      FROM student_skills
      WHERE student_id = @id
      UNION
      ...
      SELECT "Web Technologies J-Query", skill_web_jquery
      FROM student_skills
      WHERE student_id = @id
      UNION
      ...) all_skills
ORDER BY skill_level DESC