У меня есть таблица, в которой хранятся действия. Есть два специальных типа действий, скажем, например, «Просыпайтесь» и «Идите спать».Ссылка и рассчитать данные по тому же запросу
Все действия МЕЖДУ «Просыпаться» и «Идут спать» должны возвращать дополнительное поле со значением «AWAKE». Если действие происходит до «Просыпаться» или после «Ложитесь спать», оно должно вернуть дополнительное поле со значением «ASLEEP». (Это только примеры значений, постарайтесь не принимать их слишком серьезно.)
+--------+-----------+
| ac_id | ac_name |
+--------+-----------+
| 1 | Talk |
+--------+-----------+
| 2 | Wake Up |
+--------+-----------+
| 3 | Walk |
+--------+-----------+
| 4 | Go to bed |
+--------+-----------+
| 5 | Scream |
+--------+-----------+
С этой структурой, если сделать запрос с SELECT ac_name, ac_status FROM actions_table WHERE ac_name = 'Walk'
он должен вернуть:
ac_name: Walk
ac_status: AWAKE
... потому что " Walk "находится между" Wake Up "и" Go to bed ".
Мой вопрос в том, как в том же запросе и без каких-либо дополнительных запросов я могу вернуть это значение в зависимости от «позиции» строки?
Возможно, я слишком много требую от MySQL, но если я могу это сделать, я хотел бы знать, как это сделать. Если это невозможно в одном запросе, также будут приняты меры или ФУНКЦИИ.
EDIT В таблице может быть более одного «Wake Up» и более одного «Go to bed».
Большое спасибо за ответ! Думаю, это должно быть так. Тем не менее - я отредактировал вопрос - может быть, есть более одного «Wake Up» и более одного «Go to bed», поэтому ссылки на ac_id могут вернуть более одного результата. Во всяком случае, я постараюсь сыграть с вашим ответом, чтобы понять. Большое спасибо! – Unapedra