ThinkPHP order by 两个条件

现在要按状态和添加时间两个条件排序 状态status 时间addtime

$result = $db->where($where)->limit($page->firstRow.','.$page->listRows)->order('status asc')->select();
这个order该怎么写,在线等

order by可以按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),如果缺省,则是升序。order by中如果定义了多个字段,则按照字段的先后顺序排序。 

比如:  order by * desc, * acs ;
*为条件,条件的优先级和条件的先后顺序一致,order by通常放在SQL语句的最后。

扩展资料:

order by排序的用法:

1,ORDER BY 中关于NULL的处理缺省处理

Oracle在Order by 时认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前。也可以使用nulls first 或者nulls last 语法来控制NULL的位置。

如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)

2,多列排序  

单列升序:select<column_name> from <table_name> order by <column_name>; (默认升序,即使不写ASC)

单列降序:select <column_name> from <table_name> order by <column_name> desc。

多列升序:select <column_one>, <column_two> from <table_name> order by <column_one>, <column_two>。

多列降序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> desc。

多列混合排序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> asc。

参考资料来源:百度百科-order by

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
$result = $db->where($where)->limit($page->firstRow.','.$page->listRows)->order('status asc,addtime desc')->select();

望采纳 Thx

本回答被提问者和网友采纳
第2个回答  推荐于2016-07-30
  ORDER子句按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),缺省是升序。ORDER子句通常放在SQL
  语句的最后。
  ORDER子句中定义了多个字段,则按照字段的先后顺序排序:
  select * from tablename order by column1 desc, column2 asc,
  column3 desc; 在column2中有'AAA','BBB'两种值。让AAA在前,BBB在后排序的情况:
  方法一 select * from tablename order by column1 desc,
  case column2 when 'AAA' then 0 when 'BBB' then 1 end ,column3 desc;
  方法二 select * from tablename order by column1 desc,
  CHARINDEX(column2,'AAA,BBB') , column3 desc
相似回答