我有一個存儲操作的表。有兩種特殊的動作類型,比如說,「醒來」和「上牀睡覺」。在同一查詢中引用和計算數據
「醒來」和「睡覺」之間的所有動作應該返回一個額外字段,值爲「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
...因爲「步行「介於」醒來「和」去睡覺「之間。
我的問題是如何,在同一個查詢,並沒有做任何額外的查詢,我可以返回該值取決於行的「位置」?
這可能是我對MySQL太多的要求,但如果我可以這樣做,我想知道如何。 如果這在單個查詢中不可行,則也接受存儲過程或函數。
編輯 可以有多個「醒來」和超過一個「上牀睡覺」的表格。
非常感謝您的回答!我認爲應該是這樣。但是 - 我編輯了這個問題 - 可能有多個「喚醒」和多個「上牀」,因此對ac_id的引用可能會返回多個結果。無論如何,我會盡力發揮你的答案來解決問題。非常感謝你! – Unapedra