Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过使用SQL查询递增计数器来更新列中的值_Sql_Sqlite - Fatal编程技术网

通过使用SQL查询递增计数器来更新列中的值

通过使用SQL查询递增计数器来更新列中的值,sql,sqlite,Sql,Sqlite,我有这样一个表结构: ----------------------------------- ID | NAME | SORTED_ID ----------------------------------- 1 | B | 2 | D | 3 | A | 4 | C | 使用一个SQL查询,我希望根据排序顺序更新排序的\u ID列,如下所示 ---------------------

我有这样一个表结构:

-----------------------------------
ID  |    NAME   |   SORTED_ID
-----------------------------------
1   |    B      |      
2   |    D      |
3   |    A      | 
4   |    C      |
使用一个SQL查询,我希望根据排序顺序更新排序的\u ID列,如下所示

-----------------------------------
ID  |    NAME   |   SORTED_ID
-----------------------------------
1   |    B      |      2
2   |    D      |      4
3   |    A      |      1
4   |    C      |      3

我该怎么做呢?

在SQLite中,这有点痛苦。下面是一个使用相关子查询的方法:

update t
    set sorted_id = (select count(*)
                     from t t2
                     where t2.name <= t.name
                    );
注意:对于超过1000行左右的mediumish表来说,这是非常昂贵的。

这可能会有所帮助