当前位置:首页 » mysqlPHP » mysql中union all的order by问题
mysql中union all的order by问题
来自:thinksnet时间:2012-03-31 20:07:55

 

今天写mysql数据库代码的时候,发现union的结果不是预期的

$stime = date("H:i:s");
$sql1 = "select * from T where '$stime'>stime order by stime desc";
$sql2 = "select * from T where stime>'$stime' order by stime asc";
$sql = "($sql) union all ($sql2)";

分别执行$sql1 和 $sql2 的时候结果是对的
但是执行$sql的时候,发现结果反了,$sql1的部分变升序,$sql2的部分变成降序

搜索也没有得到满意的答案,好像有些数据库还是不支持字句order by 的
无意中发现这样可以,
$sql = "select * from ($sql1) as temp1 union all select * from ($sql2) as temp2";
但是不知道原因,帖出来给遇到类似问题的兄弟一个参考。
关键词:mysql,order by