请教一个简单的sql问题
想问下,我有个字段id有些不按顺序来,有些是null我想按照现在的顺序对记录排序,对其从1一直自加编排好
原来这样----------------->变成这样
id id
1 1
3 2
7 3
nul 4
null 5
... ....
请教sql怎么写 实在不行,我导出到excel再处理了导入数据库
不过我想知道用sql怎么处理,麻烦了 完全不懂什么叫sql的路过~~
话说,好似某本C课本里面冒泡法的例题 冒泡法是对有数字大小的记录进行排序
不过我这个是不变记录的顺序,给记录进行编号 有设置值吗 php喜悦村的一个版主说没有办法做到... https://www.phpx.com/thread-92013-1-1.html
LZ用的是ACCESS吧...
以下应该是MySQL的解决方法,可以参考下
方法一:
建张一样结构的结构相同的表
然后
insert into new_table (除auto_increment字段) select除auto_increment字段from old_table order by auto_increment字段 asc
方法二:
Alter TABLE man_posts Drop ID; 丢掉id字段
Alter TABLE man_posts ADD ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST 添加id字段
方法来自google:
http://www.google.cn/search?hl=zh-CN&newwindow=1&client=opera&rls=zh-cn&hs=Iiu&q=id%E8%BF%9E%E7%BB%AD+auto_increment&btnG=Google+%E6%90%9C%E7%B4%A2&meta=lr%3Dlang_zh-CN%7Clang_zh-TW%7Clang_en&aq=f&oq= 我用的是sql server2005
应该差不多
我和喜悦村的那贴应该不同,因为我的id没做限定,可以是重复或者不要
但为了共用程序好编写,所以我用id来沟通(公用程序只接收post的id来读取或者update数据),所以希望给id编个号,尽可能不要重复
我试过导出到excel后用手工批量编号的方式,导回去后sql 2005之后有些数据丢失了,估计一修改就改变了数据类型
[ 本帖最后由 阿宅. 于 2009-1-8 20:08 编辑 ] 想起access和sql 2005有点不同,acces可以设置字段为自动编号,该字段不需要写入值的,它update一条数据id就会自动+1
sql 2005字段类型没这样的类型,好像可以设置标示、标示累加的方法
不过我的id字段不能设置标示,只能是普通的int或者float类型
[ 本帖最后由 阿宅. 于 2009-1-8 20:16 编辑 ] identity(1,1) 在sql2000里面是有的
现在你这样的情况可以建多一个临时表,表结构跟你现在的表一样,但是id是自动增长的
然后再通过insert将现在的表里面按id顺序依次插到临时表中
最后清空原表,将临时表里面的数据导过来
以后在程序里面保证每次插进去的id都是现有id中最大的 谢谢,好像只能是这样了 原帖由 皇家救星 于 2009-1-9 10:23 发表 https://www.gdutbbs.com/images/common/back.gif
identity(1,1) 在sql2000里面是有的
现在你这样的情况可以建多一个临时表,表结构跟你现在的表一样,但是id是自动增长的
然后再通过insert将现在的表里面按id顺序依次插到临时表中
最后清空原表,将临时表里 ...
最好一开始就用标识,这个很方便,要不LZ你也可以用EXCEL来暂时处理你现在的问题。两种方法都很方便....
页:
[1]