首页 > 解决方案 > 使用 Union SQL 排序

问题描述

SELECT to_user_id AS sender_id 
FROM $chat_table_name 
WHERE((to_user_id = $current_user_id OR from_user_id = $current_user_id) and post_id=$post_id)  

UNION 

SELECT from_user_id AS receiver_id 
FROM $chat_table_name 
WHERE( (from_user_id = $current_user_id OR to_user_id = $current_user_id)  and post_id=$post_id ) 

order by chat_message_id DESC

如何使用此查询实现 order by

标签: mysql

解决方案


如果我的问题正确,您想单独订购单独的 SELECT,并且不能在每个语句中使用两个 ORDER BY 子句,而是为每个 SELECT 添加一个额外的整数列,如下所示:

SELECT *, 1 as orderBy from t1 
   UNION ALL
SELECT *, 2 as orderBy from t2
ORDER BY orderBy desc. 

推荐阅读