可用row_number来解决。
如student表:
姓名 年龄
张三 20
李四 15
王五 22
赵六 21
孙七 18
杨八 19
刘九 24
现在要按年龄从大到小取出前5条数据的话,可用如下语句:
select 姓名,年龄from
(select 姓名,年龄,row_number() over (order by 年龄 desc) as rn from student) t
where rn<=5;
得到的结果是:
姓名 年龄
刘九 24
王五 22
赵六 21
张三 20
杨八 19
SQL语句中的更新语句update是最常用的语句之一,下面将介绍update语句的三种使用方法,供参考
一、环境:
MySQL-5041-win32
Windows
XP
professional
二、建立测试环境:
DROP
TABLE
IF
EXISTS
t_test;
CREATE
TABLE
t_test
(
bs
bigint(20)
NOT
NULL
auto_increment,
username
varchar(20)
NOT
NULL,
password
varchar(20)
default
NULL,
remark
varchar(200)
default
NULL,
PRIMARY
KEY
(bs)
)
ENGINE=InnoDB
AUTO_INCREMENT=4
DEFAULT
CHARSET=gbk;
INSERT
INTO
t_test
VALUES
(1,'lavasoft','123456',NULL);
INSERT
INTO
t_test
VALUES
(2,'hello',NULL,NULL);
INSERT
INTO
t_test
VALUES
(3,'haha',zz,tt);
三、测试
1、set一个字段
在表t_test中设置第二条记录(bs为2)的password为''。
update
t_test
t
set
tpassword
=
''
where
tbs
=
2;
2、set多个字段
在表t_test中设置第一条记录(bs为1)的password为''、remark为''。
update
t_test
t
set
tpassword
=
'',
tremark
=
''
where
tbs
=
1;
3、set
null值
在表t_test中设置第三条记录(bs为3)的password为null、remark为null。
update
t_test
t
set
tpassword
=
null,
tremark
=
null
where
tbs
=
3;
这个是按照标准语法写的,在不同的数据库系统中,update还有更多的写法,但是标准写法都是支持的。以上三个例子为了说明情况,每次都更新一行。在实际中,可以通过where语句约束来控制更新行数。
以上就是关于SQL如何更新数据库指定条件的前几条数据全部的内容,包括:SQL如何更新数据库指定条件的前几条数据、sql数据库更新语句、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)