私はこのクエリを昇順で実行しようとしています:
SELECT title,project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY title, project_index ASC;
昇順で2つの列が必要ですが、上記のクエリはASC
の順序で1つの列のみの結果を返します。
昇順はデフォルトほとんど(すべてではない場合)DBMSなので、ステートメントはweirdただし、それでも、指定子ASC
またはDESC
を追加することで、個々の列の順序を指定できます。
あなたの声明はその後になります
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
title ASC
, project_index ASC
編集
@Arvoと@Demsで言及されているように、現在、title
でfirstをソートしており、project_index
で同じタイトルをソートしています。 project_index
を最初にソートする場合は、最初にORDER BY
句に配置する必要があります。
その後、ステートメントは次のようになります
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
project_index ASC
, title ASC
ASC
がデフォルトのソート順であるため、それらをすべて省略することができます
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
project_index
, title
Mysqlを使用している場合は、 this を確認してください。
彼らが言うように、あなたはSELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;
ORDER BYタイトルASC、project_index ASC;
SELECT title,project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY title ASC, project_index ASC;
さらに、ORDER BY col1 ASC, col2 ASC, col3 DESC;
などの列をさらに追加できます
これを試して:
SELECT title, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY project_index, title;
両方の列を昇順で並べ替えようとしています。 mysqlでは、クエリで複数の順序を使用できます。しかし、ここでは注文の優先順位が非常に重要です。最初のものが最も優先され、次のものが2番目に優先されます。
つまり、クエリは
SELECT title,project_index FROM projectdetail
WHERE project_index BETWEEN 1 AND 6 ORDER BY title, project_index ASC;
ここで、タイトル順が優先されます。 mysqlは最初に「title」列を昇順で並べ替え、結果を表示します。次に、それだけが「project_index」列を注文します。だから、思い通りに答えられない。