Sqlite 記錄號(RecNo)的生成及更新到數據表

在使用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--添加
)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章