用SQL语言update命令修改表,where后不指定具体名称,而是想指定修改第几行,应该如何写?

重点:修改指定的第几行记录mssql数据库... 重点:修改指定的第几行记录 mssql数据库 展开
 我来答
铂金羊羊羊
2012-01-11 · TA获得超过1043个赞
知道小有建树答主
回答量:230
采纳率:100%
帮助的人:210万
展开全部
朋友,你把问题说清楚了,最关键的你先得说说你用的是什么数据库吧?
这么写 :
--->:update table set XXXXX where limit n-1,1;(其中n代表第几行)
但是这么写的前提是 id必须是自增的,还必须是主键.有的mysql版本还不知道 update 和 limit 一起用.反正我的不可以,我建议朋友分开写.如果所示:
----------------------------------------------------------------------------------
如果是oracle 你就可以直接写 update table set XXXX where rownum=n,
但是mysql 不行,你可以这么看:
1:假如有一张表名:info,里面有id 和 name;
2:如果得到第N条数据,你可以这么写 select * from info limit n-1,1;这就是第N条数据的内容;
3:你也可以这么写 select * from info where id=(select id from info limit n-1,1);和2中的结果相同;
4:但是你这么写就不可以:update table set XXXXX where id=(select id from info limit n-1,1);
5:其实这没有什么难度的,我建议朋友分成两条,先查ID : select id from info limit n-1,1;
6:然后根据5中得到的ID来更新数据 update info set XXXXX where id=上面得到的ID;
7:这样做更方便点,而且还可以判断第几行到底有没有数据..呵呵..
8:朋友可以这么试验一下...
try4148
2012-01-11 · TA获得超过334个赞
知道小有建树答主
回答量:632
采纳率:100%
帮助的人:388万
展开全部
update 表 set 字段='xxx' where 主键=( select max(t.主键) from (SELECT top n 主键 FROM 表) t)

top n中的n就是你要修改的行号
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
马可财经
2012-01-11 · TA获得超过742个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:258万
展开全部
update tablename set ??? where id?=(select max(a.id) from (select id from tablename limit $line_num) a)
上述语句中,id字段属性必须为自增主键,或为值唯一字段
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
csuxp2008
2012-01-11 · TA获得超过6485个赞
知道大有可为答主
回答量:4704
采纳率:50%
帮助的人:2446万
展开全部
必须加where条件,你看到的第几行,并不能让数据库知道是哪些记录
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式