在使用Sqlite做小項目時需要對下面數據表進行序列號處理,如圖
開始使用如下語句 按理是對的,
SELECT a.fileId,count(1) as no,a.Name,a.fileName,a.hasTest
FROM 文件列表 as a,文件列表 as b
WHERE a.rowid >= b.rowid
沒想到查詢結果只有一條
問題出在哪裏呢?於是修改了一下sql語句
SELECT a.fileId,a.Name,a.fileName,a.hasTest
FROM 文件列表 as a,文件列表 as b
WHERE a.rowid >= b.rowid
查詢結果如下:
從這個結果可以看出查詢的基本部分是沒有問題,分一下組就應該可以了,於是添加了 GROUP BY a.fileId --添加
SELECT a.fileId,count(1) as no,a.Name,a.fileName,a.hasTest
FROM 文件列表 as a,文件列表 as b
WHERE a.rowid >= b.rowid
GROUP BY a.fileId --添加
查詢結果就對了
下面我們就把生成的記錄號寫入到表中
UPDATE "文件列表"
set RecNo = (
SELECT count(1) as no
FROM 文件列表 as a,文件列表 as b
WHERE a.rowid >= b.rowid and a.fileId = 文件列表.fileId
GROUP BY a.fileId--添加
)