表示顺序的自定义列

Custom column to represent order

我正在使用数据 table 中的 MySQL 到 return 列。我想要做的是使用 Order By 按日期字段按升序对结果进行排序,然后 return 自定义列以及其他所需的列,其中自定义列表示与 Order By 相关的索引结果。是的,我有以下查询,它只是 returns 所需的列并对结果进行排序:

SELECT
    `alert_id`,
    `message`,
    `expiration`
FROM
    `alert`
WHERE
    `is_active` = TRUE
ORDER BY
    `expiration`

但我遇到的困难是如何 return 表示订单的自定义列。因此,例如,我想要以下(样本数据)行 returned:

  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    |
+----------+---------+------------+  +----------+---------+------------+----------+

在 AdrianE 的帮助下提到 ROW_NUMBER 函数,即使我正在使用 MySQL 并且该函数不可用,我还是能够通过使用以下命令来模拟该函数:

SET @order = 0;
SELECT
    `alert_id`,
    `message`,
    DATE_FORMAT(`expiration`, '%M %D, %Y') AS formatted_date,
    (@order := @order + 1) AS order_by
FROM
    `alert`
WHERE
    `is_active` = TRUE
ORDER BY
    `expiration`;