正文
mysql怎么生序 mysql升序
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
关于mysql 创建序列
mysql下序列是用关键字auto_crement,起始值及步长增长值由系统以下参数确定:
mysql show variables like '%auto_increment%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.00 sec)
mysql
其中auto_increment_offset表示起始值(且必须由1开始),参数表示auto_increment_increment表示步长增长值(只能是正整数)。
建表示例:
create table t111
(id int auto_increment primary key,
remark varchar(50)
);
由上面所说可知,你的需求在mysql下单用auto_crement是实现不了的。建议你考虑别的办法吧,或由一些变通的方式实现。
用mysql查询后,怎样生成名次的顺序号
用mysql查询后,怎样生成名次的顺序号
SELECT 语句中的 Order By 子句,决定返回记录集合的排序方式
例如:
按照【名次】值,从小到大排序
Select * From 表名 Where ...... Order By 名次
按照【名次】值,从大到小排序
Select * From 表名 Where ...... Order By 名次 Desc
MySql的几种排序方式
1、单列排序
SELECT * FROM test1 ORDER BY date_time
默认升序,降序后面接"DESC"即可。
2、多列排序
SELECT * FROM test1 ORDER BY `status`, date_time DESC
首先按`status`字段排序,若`status`相等,则按data_time排序。
3、自定义排序
SELECT * FROM test1 ORDER BY FIELD(`status`, 3, 2, 4, 1, 5), date_time DESC
使用"FIELD()"函数,可指定顺序。
4、其他条件排序
先按大于等于当前时间升序,再按小于当前时间降序,支持分页。
SELECT * FROM test1 ORDER BY date_time NOW(), IF(date_time NOW(), 0, date_time), date_time DESC
附加SQL脚本:
CREATE TABLE `test1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`date_time` datetime NOT NULL,
`status` int(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
INSERT INTO `test1` VALUES
(NULL, '测试1', '2018-03-05 11:09:00', 1),(NULL, '测试2', '2018-03-06 11:09:00', 1),(NULL, 'abc', '2018-03-07 11:09:00', 1),
(NULL, 'def', '2018-04-08 11:09:00', 2),(NULL, '李某某', '2018-04-17 11:09:00', 1),(NULL, '饭某某', '2018-04-20 13:09:00', 2),
(NULL, '赵', '2018-04-20 01:09:00', 4),(NULL, '倩', '2018-04-28 11:09:00', 2),(NULL, 'andy', '2018-04-30 11:09:00', 1),
(NULL, 'tony', '2018-05-08 11:09:00', 4),(NULL, 'tom', '2018-05-07 11:09:00', 3),(NULL, 'bill', '2018-05-18 11:09:00', 3),
(NULL, 'james', '2018-06-07 11:09:00', 4),(NULL, 'anthony', '2018-06-18 11:09:00', 2),(NULL, '盖茨', '2018-04-21 11:09:00', 1),
(NULL, '部长', '2018-04-24 11:09:00', 4),(NULL, '李总', '2018-04-20 11:09:00', 5),(NULL, '张总', '2018-04-29 11:09:00', 2),
(NULL, '王总', '2018-04-19 11:09:00', 3),(NULL, '唐总', '2018-05-01 11:09:00', 2);
参考的这篇文档Mysql排序方式
关于mysql数据库排序的问题
那要看你的表是怎么构建的
一般这汇总情况我认为
你的id应该是自增的吧
如果是自增
那么
插入一个数据的话
就是id等于4的那个行
切
你的
desc字段应该就是
用来
排序用的吧
那么
在前台
你可以
做一个input框(每行后边都有个input框)
目的就是为了
排序你的数据
在这种情况下
就不需要改动什么字段了吧
唯一需要改动的字段内容
就是
更新
desc的字段就可以了吧
打个比方
原来是这样的
id
name
desc
1
a
2
c
3(改动)
3
b
2(改动)
4
d
1(追加在a后)
修改后
按
name
a
b
c
d
这么排列
id
name
desc
1
a
3
b
1
2
c
2
4
d
3
这是在前台显示的内容
在数据库里
你可以看到实际上
改变的
只有
desc
后边的
1
2
3
这几个
而数据库的表中
实际数据的位置是不会发生变化
其实你不用担心什么数据量过多的问题
且
在插入新的数据的时候
就让他的desc值默认是最大的
也就是最后一位显示
mysql 如何创建序列?
比如说mysql怎么生序你创建mysql怎么生序了一个表userinfos
create table userinfos(
userid int primary key,
username varchar(20)
);
//给userinfos添加序列
update userinfos set userid = last_insert_id(userid+1);
//然后查询序列
select last_insert_id();
或者也可以这样
create table userinfos(
userid int primary key not null auto_increment,
username varchar(20)
);
关于mysql排序
在执行查询结果时,默认情况下查询结果无序排列。但我们有时需要对数据按一定规则进行排序。这时可以通过ORDER BY子句来实现这个功能。语法如下:
SELECT *,column [alias],... FROM table
[WHERE condition(s)]
[ORDER BY column[ASC|DESC]];
默认是ASC指定的升序排列,DESC用来指定降序排列。
1、升序排序:
使用ORDER BY子句时,默认情况下数据是按升序排列的,故可以用ASC关键字指点升序排列,或者不指定,默认就是升序,显示效果是一样的,如下图:
2、降序排序:
当需要查询结果降序排列时,必须在排序后指定DESC关键字。如下图是查看职员薪水的降序排列:
关于mysql怎么生序和mysql升序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。