关于mysql数据库排序的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql数据库排序的问题相关的知识,希望对你有一定的参考价值。
参考技术A 在执行查询结果时,默认情况下查询结果无序排列。但我们有时需要对数据按一定规则进行排序。这时可以通过orderby子句来实现这个功能。语法如下:
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数据库排序的问题的主要内容,如果未能解决你的问题,请参考以下文章