MYSQL ORDER BY CASE 問題
這個問題對根據 WHERE 條件根據特定列對行進行排序提出了挑戰。考慮所提供的具有四行和時間戳列的資料庫。目標是對行進行排序,以便兩個時間戳列都被視為單一排序標準。
提供的查詢最初根據id_one 和id_two 欄位分別對時間戳進行排序:
SELECT * FROM tablename WHERE id_one=27 OR id_two=27 ORDER BY CASE WHEN id_one=27 THEN timestamp_one END DESC, CASE WHEN id_two=27 THEN timestamp_two END DESC
此方法會產生一個輸出,其中行在每個id_one 或id_two 組內排序,但不是作為組合時間戳記
為了實現所需的排序,我們可以使用稍微修改過的查詢:
SELECT id_one, id_two, timestamp_one, timestamp_two FROM tablename WHERE id_one = 27 OR id_two = 27 ORDER BY CASE WHEN id_one=27 THEN timestamp_one WHEN id_two=27 THEN timestamp_two END DESC
在這個修改後的查詢中,timestamp_one 和timestamp_two 都被考慮進行排序,無論哪個ID 欄位符合WHERE 條件。 CASE 語句根據 id_one 和 id_two 值選擇適當的時間戳記。
此修改會產生所需的輸出,其中行作為單一時間戳列排序,同時考慮timestamp_one 和timestamp_two:
以上是如何使用 CASE 語句在 MySQL 中基於多個時間戳記列對資料行進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!