在已生成结果后重新排序sql

时间:2016-08-19 00:37:42

标签: php mysql sorting

有没有办法在结果生成后使用mySQL sql。

我有一个sql,它可以获得我想要显示的结果,但我想要对它们进行排序的方式取决于结果本身。为清晰起见,提供了一些伪代码。

$sql = "SELECT * FROM post_info WHERE poster = 'login_user' OR replier = 'login_user'";

if ('login_user' == $row['poster']) { //sort by one column } 
else { //sort by a different column }

2 个答案:

答案 0 :(得分:8)

您可以使用CASE语句从查询中有条件地进行排序。

ORDER BY (CASE
  WHEN poster = 'login_user' THEN col1
  ELSE col2
END)

答案 1 :(得分:0)

while

$sql = "SELECT *, if(poster='login_user', 1, 0) as idx FROM post_info WHERE poster = 'login_user' OR replier = 'login_user' order by idx desc";