MySQL查询时有时候需要某条记录置顶或者放最后,而其他的记录则按照一定的顺序排序

来源:互联网 发布:网络唤醒开机 编辑:程序博客网 时间:2024/04/29 04:54

把需要置顶的记录先查询出来,然后再查询其他的记录,把两个结果集合并。置末则反之。

合并结果集方法 :

1  数组合并:$list1 = "select a, b, c from table_name where ... order by ...";

    $list2 = "select a, b, c from table_name where ... ";

    $list =array_merge($list1,$list2);

2 union all (union)

使用 union all 注意事项

为了对单个SELECT使用ORDER BY或LIMIT,应把子句放入圆括号中。圆括号包含了SELECT:

(SELECT a FROM tbl_name WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM tbl_name WHERE a=11 AND B=2 ORDER BY a LIMIT 10);

注意:

圆括号中用于单个SELECT语句的ORDER BY只有当与LIMIT结合后,才起作用。否则,ORDER BY被优化去除。
阅读全文
0 0
原创粉丝点击