0
私はMySQLを使用してデータテーブルから列を返します。私がしたいのは、Order Byを使用して、結果を日付フィールドで昇順に並べ替えるだけでなく、カスタム列が他の目的の列と共に返され、カスタム列がOrder By結果に関連してインデックスを表す場合です。注文を表すカスタム列
SELECT
`alert_id`,
`message`,
`expiration`
FROM
`alert`
WHERE
`is_active` = TRUE
ORDER BY
`expiration`
しかし、私はとの難しさを抱えているにも順序を表しカスタム列を返す方法である:右、私は以下の結果だけを希望の列を返し、注文したクエリを持っています。したがって、たとえば、私は行が返され、次の(サンプルデータ)を希望:エイドリアンの助けを借りて
Pior to Order and Custom Column After the Order and Custom Column
+----------+---------+------------+ +----------+---------+------------+----------+
| alert_id | message | expiration | | alert_id | message | expiration | order_by |
+----------+---------+------------+ +----------+---------+------------+----------+
| 1 | alert1 | 2017-11-20 | | 5 | alert5 | 2017-11-16 | 1 |
| 5 | alert5 | 2017-11-16 | | 6 | alert6 | 2017-11-17 | 2 |
| 6 | alert6 | 2017-11-17 | | 1 | alert1 | 2017-11-20 | 3 |
+----------+---------+------------+ +----------+---------+------------+----------+
注意: 'TRUE'は' 1'の単なるエイリアスです。実際のブール値はMySQLにはありません。 – tadman
探しているものは、SQLServerとOracleでROW_NUMBER()と呼ばれるものです。そのキーワードで検索すると、stackoverflowで多くの質問が見つかるでしょう。 –
@AdriánE - MySQLではROW_NUMBER関数を使用できませんが、変数を宣言してSELECTステートメントでそれをインクリメントすることで、ROW_NUMBER関数をエミュレートできました。どうもありがとうございます。 – David