MySQLクエリ-ORDER BY

mysql sql
MySQLクエリ-ORDER BY

これはできますか?:

SELECT * FROM calendar ORDER BY ((month * 31) + day)

  2  0


ベストアンサー

はい(テーブルに「month」と「day」と呼ばれる数値列があると仮定)

欲しくない?

SELECT * FROM calendar ORDER BY ((`month` * 31) + `day`)

でも?

編集

実際に使用するだけ

SELECT * FROM calendar ORDER BY `month`, `day`

私が何かを逃していない限り?

4


クエリ結果の任意の列で並べ替えることができます。 そのようなオンザフライの準備情報を「選択」できる場合は、「ORDER BY」できます。

2


テーブルに「month」と「day」という名前の列がある場合、クエリにいくつか変更を加える必要があります。

SELECT * FROM calendar ORDER BY ((month * 100) + day)

列名から引用符を削除し、月数と日数が10以上になるように正しく並べ替えられるように、月の乗数を1桁増やしました。 また、「ORDER」のスペルのタイプミスを修正しました。

しかし

  • クエリは年ごとに正しくソートされません(これが重要かどうかはわかりません)
    あなたのユースケースで)。

  • 次の理由により、クエリは大きなデータセットでゆっくり実行されます。
    句による「ORDER」の動的な性質。 単一の日付列を使用して、その列にインデックスを作成することを検討してください。

1


タイトルとURLをコピーしました