mysql数据库怎么可以两个条件排序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库怎么可以两个条件排序?相关的知识,希望对你有一定的参考价值。
select * from mysql order by time descselect * from mysql order by id desc我希望让time居先ID居后排列这样可以吗 select * from mysql order by time,id desc各位帮我解决下啊 谢谢了!
可以的,order by多个字段规则是这样的,用逗号分隔每一个字段,如果字段不指明排序方式,默认是增序。排序的方法是先按第一个字段排序,如果有相同的再按后续的字段依次排序。
举个例子
按照c1排序的结果如上图,然后我们按照c1增序,c2降序排列,结果如下:
参考技术A 在数据库查询时,常常需要排序,而有时排序条件可能有多个。如数据库:
a b
1 103
1 101
2 201
2 203
1 102
2 202
排序后: a b
1 103
1 102
1 101
2 203
2 202
2 201
语句:
SELECT A.a , A.b FROM TABLE A ORDER BY A.a ASC , A.b DESC
其中ASC连接多条排序,且与后一条查询之间有逗号隔开! 参考技术B 今天又测试了一下,使用utf8字符集创建的表或者字段使用的是utf8字符集,中文的排序是不正确的,如果表和字段是gbk字符集,则可以正确的排序。
mysql> create table tt_character (name varchar(20)) default charset gbk;
Query OK, 0 rows affected (0.03 sec)
mysql> create table tt_character1 (name varchar(20)) default charset utf8;
Query OK, 0 rows affected (0.04 sec)
mysql> insert into tt_character values('兰州'),('安徽'),('江西');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> insert into tt_character1 values('兰州'),('安徽'),('江西');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from tt_character1 order by name;
+------+
| name |
+------+
| 兰州 |
| 安徽 |
| 江西 |
+------+
3 rows in set (0.00 sec)
mysql> select * from tt_character order by name;
+------+
| name |
+------+
| 安徽 |
| 江西 |
| 兰州 |
+------+
3 rows in set (0.00 sec) 参考技术C select * from mysql order by 字段一 asc ,字段二 asc,字段三 desc; 参考技术D select * from mysql order by time desc,id desc
mysql 对符合条件的字段进行排序
使用ztree时,order by name将父节点与子节点都进行了排序,实际需求是只对子节点(is_parent=0)的name排序,sql语句要怎么写呢?
前面加个条件判断不行么?select * from table_name where is_parent=0 order by name如果父节点也需要查出来,可以用union all来做个合并查询追问
当然父节点也要查出来,不然怎么形成树呢?除了union all没别的方法了吗?在网上也有搜到
order by(case when....)多条件排序,我就是没搞清我现在遇到的这种情况算不算多条件排序?
我想这样写select * from table_tree order by(case when is_parent=0 then name else end ),觉得用order by(case when...)应该能实现我的需求,可是我这样写报错了。如果能实现要怎么写?
SELECT*FROM tablename
WHERE is_parent=0 OR is_parent!=0
ORDER BY
CASE WHEN is_parent=0 THEN name END DESC,
CASE WHEN is_parent!=0THEN column_b END DESC
column_b是父节点希望排序的字段,你可以随便写个
1,父节点一个view ,没有排好序
2,子节点一个view,排好序了
3,父节点和子节点view连接一下查询
以上是关于mysql数据库怎么可以两个条件排序?的主要内容,如果未能解决你的问题,请参考以下文章
django中怎么使用两个限定条件在mysql数据库中进行查询