1

次のような昇順の選択クエリがあります...

select DISTINCT
    (m.task_name) as TaskName, 
    m.activity_name as ActivityName,
    m.actual_score,
    m.score,
    m.section_name 
from 
    users u, 
    som_scores m 
where 
    m.ref_student_id = '".$row['userid']."' and 
    m.section_name IN('jws1','jws2','jws3','jws4','sm1','srs1','Pws1','Pws2','lws1','sp1') 
ORDER BY 
    m.section_name ASC

セクション名を昇順で設定し、タスク名も Task1 Task2 のように並べたいと思います。

次のようなデータを表示したいということです

1) セクション名 = jws1 およびタスク Task1 Task2 Task3 Task4 のようなセクションの下

2) セクション名 = jws2 およびタスク Task1 Task2 Task3 Task4 のようなセクションの下

等々..

4

3 に答える 3

2

二次注文を追加するだけですORDER BY

ORDER BY 
    section_name ASC,
    TaskName ASC
于 2012-10-06T11:32:08.440 に答える
0

私はこのように解決策を見つけました" cast( SUBSTRING(TaskName, 5 ) AS unsigned ) ASC"

select DISTINCT
        (m.task_name) as TaskName, 
        m.activity_name as ActivityName,
        m.actual_score,
        m.score,
        m.section_name 
    from 
        users u, 
        som_scores m 
    where 
        m.ref_student_id = '".$row['userid']."' and 
        m.section_name IN('jws1','jws2','jws3','jws4','sm1','srs1','Pws1','Pws2','lws1','sp1') 
    ORDER BY 
        m.section_name ASC,
        cast( SUBSTRING(TaskName, 5 ) AS unsigned ) ASC,
        ActivityName ASC
于 2012-10-06T11:45:29.140 に答える
0

このクエリを使用

select DISTINCT(m.task_name) as TaskName, m.activity_name as ActivityName,m.actual_score,m.score,m.section_name from users u, som_scores m where m.ref_student_id = '".$row['userid']."' and m.section_name IN('jws1','jws2','jws3','jws4','sm1','srs1','Pws1','Pws2','lws1','sp1') ORDER BY m.section_name ASC,m.task_name ASC

これは、最初にセクションで並べ替えられ、その後タスク名で並べ替えられます

この順序を試してください

m.task_name+0 ASC

また

ORDER BY m.section_name ASC,CAST(SUBSTRING(m.task_name,LOCATE(' ',m.task_name)+1) AS SIGNED) ASC
于 2012-10-06T11:34:30.967 に答える