扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、虚拟主机、营销软件、网站建设、万宁网站维护、网站推广。
2
update table set name='f' where id = 1;
update table set name='f' where id 1 id 5;
mysql如何指定查询一张表的查询结果,如最后5行记录和最前5行记录
mysql如何指定查询一张表的查询结果,如最后5行记录和最前5行记录
我们以student表为例,里面有三个字段:id,name,age,其中id为主健,为自增,里面共有10条记录,如下所示。
mysql select * from student;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | li | 11 |
| 2 | zh | 12 |
| 3 | chou | 13 |
| 4 | he | 14 |
| 5 | lin | 15 |
| 6 | ll | 16 |
| 7 | chen | 17 |
| 8 | yu | 18 |
| 9 | wu | 19 |
| 10 | xie | 20 |
+----+------+------+
10 rows in set (0.00 sec)
1、查询第一行记录
select * from student limit 1;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | li | 11 |
+----+------+------+
1 row in set (0.00 sec)
2、查询最后一行记录
select * from student order by id desc limit 1;
+----+------+------+
| id | name | age |
+----+------+------+
| 10 | xie | 20 |
+----+------+------+
1 row in set (0.00 sec)
3、查询前n行记录,如前5行
select * from student limit 5;
select * from student limit 0,5;
select * from student order by id asc limit 5;
上面三条语句的结果都是一样的,如下:
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | li | 11 |
| 2 | zh | 12 |
| 3 | chou | 13 |
| 4 | he | 14 |
| 5 | lin | 15 |
+----+------+------+
5 rows in set (0.00 sec)
4、查询后n行记录,如后5条,注意结果为倒序排序,因为用了desc
select * from student order by id desc limit 5;
+----+------+------+
| id | name | age |
+----+------+------+
| 10 | xie | 20 |
| 9 | wu | 19 |
| 8 | yu | 18 |
| 7 | chen | 17 |
| 6 | ll | 16 |
+----+------+------+
5 rows in set (0.00 sec)
5、查询第m行到第n行记录,注意表中的记录下标是从0开始的,就像数组一样
select * from student limit m,n; 返回m+1到m+n行记录,m代表开始的下标,n代表查找的结果数,将返回n行结果
select * from student limit 2,8; 返回3到10行记录
+----+------+------+
| id | name | age |
+----+------+------+
| 3 | chou | 13 |
| 4 | he | 14 |
| 5 | lin | 15 |
| 6 | ll | 16 |
| 7 | chen | 17 |
| 8 | yu | 18 |
| 9 | wu | 19 |
| 10 | xie | 20 |
+----+------+------+
8 rows in set (0.00 sec)
select * from student limit 3,1; 返回第4行
+----+------+------+
| id | name | age |
+----+------+------+
| 4 | he | 14 |
+----+------+------+
1 row in set (0.00 sec)
6、查询一条记录($id)的下一条记录
select * from student where id$id order by id asc limit 1;
如$id=4时将返回第5条记录
select * from student where id4 order by id asc limit 1;
+----+------+------+
| id | name | age |
+----+------+------+
| 5 | lin | 15 |
+----+------+------+
1 row in set (0.00 sec)
7、查询一条记录($id)的上一条记录
select * from student where id$id order by id desc limit 1;
如$id=4时将返回第3条记录
select * from student where id4 order by id desc limit 1;
+----+------+------+
| id | name | age |
+----+------+------+
| 3 | chou | 13 |
+----+------+------+
1 row in set (0.00 sec)
使用sql语句最后加上limit 参数1,参数2 一个参数是显示几行,2个参数是从参数1开始显示,显示参数2行
1、创建测试表,
create table test_limit(id int ,value varchar(100));
2、插入测试数据,共6条记录;
insert into test_limit values (1,'v1');
insert into test_limit values (2,'v2');
insert into test_limit values (3,'v3');
insert into test_limit values (4,'v4');
insert into test_limit values (5,'v5');
insert into test_limit values (6,'v6');
3、查询表中全量数据,可以发现共6条数据,select * from test_limit t;
4、编写语句,指定查询3条数据;
select * from test_limit limit 3;
mysql可以指定插入到第几行。方法是:
1、取消主键‘Match_R'的自动增加。
2、更改‘Match_R'的值,以便留出插入新数据的空间。
3、插入完整的要插入的数据。
4、恢复主键‘Match_R'的自动增加。
表中数据没有的行的概念哦,数据库表里面的数据,哪个在前、在后,用户是不应该关心的,我们只是在取出数据的时候指定一定规则进行排序,它在数据库里面究竟是如何排序,我们是不必要、不需要知道和控制的。
补充:
只能通过某字段等于多少这样的条件,无法控制数据库中第几条数据。一般的修改语句是:
UPDATE 表名 SET options=1 WHERE id BETWEEN 5 AND 20
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流