关于mysql数据库排序的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql数据库排序的问题相关的知识,希望对你有一定的参考价值。

参考技术A 在执行查询结果时,默认情况下查询结果无序排列。但我们有时需要对数据按一定规则进行排序。这时可以通过order
by子句来实现这个功能。语法如下:

select
<*,column
[alias],...>
from
table

[where
condition(s)]

[order
by
column[asc|desc]];
默认是asc指定的升序排列,desc用来指定降序排列。
1、升序排序:

使用order
by子句时,默认情况下数据是按升序排列的,故可以用asc关键字指点升序排列,或者不指定,默认就是升序,显示效果是一样的,如下图:

2、降序排序:

当需要查询结果降序排列时,必须在排序后指定desc关键字。如下图是查看职员薪水的降序排列:
参考技术B 那要看你的表是怎么构建的
一般这汇总情况我认为
你的id应该是自增的吧
如果是自增
那么
插入一个数据的话
就是id等于4的那个行

你的
desc字段应该就是
用来
排序用的吧
那么
在前台
你可以
做一个input框(每行后边都有个input框)
目的就是为了
排序你的数据
在这种情况下
就不需要改动什么字段了吧
唯一需要改动的字段内容
就是
更新
desc的字段就可以了吧
打个比方
原来是这样的
id
name
desc
1
a
0
2
c
3(改动)
3
b
2(改动)
4
d
1(追加在a后)
修改后

name
a
b
c
d
这么排列
id
name
desc
1
a
0
3
b
1
2
c
2
4
d
3
这是在前台显示的内容
在数据库里
你可以看到实际上
改变的
只有
desc
后边的
0
1
2
3
这几个
而数据库的表中
实际数据的位置是不会发生变化
其实你不用担心什么数据量过多的问题

在插入新的数据的时候
就让他的desc值默认是最大的
也就是最后一位显示

关于MySQL一些问题按字段排序

之前从数据库取值然后按照某个字段进行排序,返回的却是乱序的,这是什么原因呢?

 

比如,数据表a有一个字段APPversion是varchar型的(7、8、9、10),然后我们在工程中定义APPVersion为String型的,我们按照这个APPversion来反向排序,如果直接使用

select * from a order by APPversion desc;

这样查询出来的是9、8、7、10。

主要原始还是数据库定义的是varchar型的,是按照字符串来排序的,所以这里的10并不是10,而是1 0。

这里我们进行一下处理就可以:

select * from a order by APPversion+0 desc;

 

这样就可以了。

以上是关于关于mysql数据库排序的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于MySQL一些问题按字段排序

关于oracle和mysql数据库的查询问题

关于MYSQL字符集问题

请教各位大牛关于mysql按时间段分组查询的问题。

关于mysql创建数据库中字符集和排序规则的选择

使用空间分析函数和数据类型在 MySQL 中按距离排序