SQLite:如何使用计数(*)范围更新列?

SQLite:如何使用计数(*)范围更新列?,sqlite,count,range,Sqlite,Count,Range,我不确定我在这里使用的术语是否正确 基本上,我想使用count*[485]作为分隔符,以升序更新整个id列,因此生成的行值将与rownumber而不是rowid相对应。尝试以下操作: 您可以使用一些内部数据库变量,如rowid、oid等来获取所需的内容 [编辑] 我想我刚刚理解了您的意思,您希望为每个插入操作添加一个值,即表中当前行的总数? 如果是这样,请尝试以下方法: 更新tbl_名称 设置id=从tbl\U名称中选择计数* 如果我理解正确,这应该适用于您: UPDATE tbl_name S

我不确定我在这里使用的术语是否正确

基本上,我想使用count*[485]作为分隔符,以升序更新整个id列,因此生成的行值将与rownumber而不是rowid相对应。

尝试以下操作:

您可以使用一些内部数据库变量,如rowid、oid等来获取所需的内容

[编辑] 我想我刚刚理解了您的意思,您希望为每个插入操作添加一个值,即表中当前行的总数? 如果是这样,请尝试以下方法:

更新tbl_名称 设置id=从tbl\U名称中选择计数*
如果我理解正确,这应该适用于您:

UPDATE tbl_name SET id=rowid
编辑 如果是这样的话->那么就有点棘手了,因为SQlite不支持变量声明。 所以我的建议是

要从原始表的选择中创建临时表,使其rowid成为行号1、2、3等。。。 将它的rowNum设置为每个rowid所需的行数列 然后用它替换原来的表。 如下所示:假设原始表名为orig_name

            CREATE TABLE tmp_tbl AS SELECT rowNum FROM orig_name;
            UPDATE tmp_tbl SET rowNum=rowid;
            DROP TABLE orig_name;
            CREATE TABLE orig_name AS SELECT rowNum FROM tmp_tbl;
            DROP TABLE tmp_tbl;

否,id已对应于rowid。正如我所写的,我希望它改变,使之对应于rownumber。可以使用来自tbl_name的SELECT id或来自tbl_name的SELECT count*检查总行数。我需要使用此值。请检查我刚才添加的编辑。如果得到帮助,别忘了投票支持你的解决方案非常好。不幸的是,我的“声誉”显然太低,现在还不能投票。没问题,我很乐意帮忙。好luckI我想我需要的是使用排号,但我不能。见我以前的评论。