Sqlite 排序后 更新序号的问题

nerv_koal 2009-02-13 04:24:09
一个表 test: id,a,b

id,a,b 都是数字,id唯一

里面的数值
id a b
1, 2,3
2, 2,1
3, 4,1
4, 1,3

使用Select 排序 按照 a,b升序
结果是
1,3
2,1
2,3
4,1

现在想要把ID更新,把表变成
3,2,3
2,2,1
4,4,1
1,1,3

请问用SQL语句需要怎么做

不想重新建新表

刚才用access试了一下

access当中有个dcount的命令


UPDATE test SET id = dcount('*','test','a<' & a & ' or (a=' & a & ' and b <=' & b & ')');
这个就可以了

想请问一下 Sqlite当中需要怎么实现
...全文
782 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzmwmh 2009-06-18
  • 打赏
  • 举报
回复
我也来学习了,感觉有点用
nerv_koal 2009-03-17
  • 打赏
  • 举报
回复
学习一下 谢谢
nerv_koal 2009-03-01
  • 打赏
  • 举报
回复
我觉得如果 再CreateTable就很麻烦了


本来有一种方法
就是统计总个数

然后用程序做一个循环

for(i<MAX)
{
Keyid = Select(i);//做循环取主键
update(keyid,i);
}

但是总是觉得如果能尽量Sql语句执行
ACMAIN_CHM 2009-03-01
  • 打赏
  • 举报
回复
如果是主键的话,按照 3楼 的做法试一下。
din888 2009-02-23
  • 打赏
  • 举报
回复
学习学习
wwwwb 2009-02-17
  • 打赏
  • 举报
回复
直接:
create table tt as
SELECT A.ID,A.A,A.B,COUNT(B.ID)+1 as newid FROM TEST A LEFT JOIN TEST B
ON A.A>B.A OR (A.A=B.A AND A.B>B.B)
GROUP BY A.ID,A.A,A.B
nerv_koal 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ACMAIN_CHM 的回复:]
SQLite到目前的版本还不支持JOIN表更新 .

不过如果 表 test: id,a,b 中a,b为主键的话,你可以用 insert or replace 来实现这个更新。
[/Quote]

这个是什么意思 您能给详细说一下吗?
WWWWA 2009-02-14
  • 打赏
  • 举报
回复
TRY:
SELECT A.ID,A.A,A.B,COUNT(B.ID)+1 FROM TEST A LEFT JOIN TEST B
ON A.A>B.A OR (A.A=B.A AND A.B>B.B)
GROUP BY A.ID,A.A,A.B
weskiter2 2009-02-14
  • 打赏
  • 举报
回复
友情up
ACMAIN_CHM 2009-02-14
  • 打赏
  • 举报
回复
SQLite到目前的版本还不支持JOIN表更新 .

不过如果 表 test: id,a,b 中a,b为主键的话,你可以用 insert or replace 来实现这个更新。

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧