请教一句SQL一句(也许不难)(100分)

  • 主题发起人 主题发起人 hehuan
  • 开始时间 开始时间
H

hehuan

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个表 table1,里面满足我的条件的一共有10条记录。然后我想更新这个表的某个字段field_numero,把这10条记录分别编号1、2、3、...10,请问有什么办法吗?请用不要用笨办法更新10遍,那样的话数据量一大效率极低。所以在能够达成目的的前提下,请使用尽量少的语句,非常感谢!!
 
先将需要更新的值存在临时表中,然后

update table1 set field_numero=t2.field_numero
from table1 t1 inner join tmpTable t2 on t1.iid=t2.iid
where t1.iid in (1,2....10)
 
简单

declare @a int
set @a =0
update table1 set field_numero=@a,@a=@a+1
以上方法不管几条记录,编号从1到最后一条记录。
 
也可以把field_numero定义成自增长的。
 
我想,更新比較簡單,不過要更新字段為 1,2,3,4,...10
沒有簡單的方法,除非你定議一個臨時表,將要更新的數據插入臨時表,同時,這個順序字段設為自增類型的,然後用這個表中的數據關聯更新到原來的表中
 
create table temptable ( ID_Num int, Table1_ID varchar(10) )

select IDENTITY(int, 1,1) AS ID_Num, Table1_ID
from Table1
where 你的條件...

update Table1
set table1.順序字段 = tempTable.ID_NUM
from Table1
left join tempTable where table1.ID = temptable.Table1_ID
就是這樣子的
 
楼上的不用这么复杂吧,我的方法很简单的。
 
谢谢各位,我马上试试。不过我觉得李翔鹏的语句不是标准SQL吧?我是用DELPHI连接MYSQL,应该不能自定义SQL函数,所以你那样写能行吗??
 
李翔鵬兄弟的做法是比較厲害,學習到了,謝謝
 
我的是SQLSERVER语法,不知道MYSQL行不行。
 
多人接受答案了。
 
后退
顶部