是否有办法在结果已经生成之后诉诸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 }
您可以使用CASE
语句在查询中进行有条件排序。
ORDER BY (CASE
WHEN poster = 'login_user' THEN col1
ELSE col2
END)
$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";
或
$sql = "SELECT * FROM post_info WHERE poster = 'login_user' UNION SELECT * FROM post_info WHERE replier = 'login_user'";