通过使用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表来说,这是非常昂贵的。这可能会有所帮助