我正在使用一个表示树的 SQLite 表。它的列包括id
和parent
。当然,每个parent
值都是id
另一行的值。
还有一changeCount
列,对于在批量操作中删除的每个子项,我必须将其增加 1。
例如,说
- id 为 11、12 和 13 的行将在批量操作中被删除。
- id=11 和 id=12 的行都有相同的 parent=5。
- id=13 的行有 parent=8。
那么 id=5 的行的 changeCount 应该增加 2,而 id=8 的行的 changeCount 应该增加 1。
似乎应该有一种方法可以在一个查询中执行此操作。也许是这样的:
UPDATE myTable
SET changeCount = changeCount
+ (SELECT COUNT(*) FROM myTable
WHERE id IN (11,12,13) AND parent = XXXX);
表达式 XXXX 应该是对“当前”行的引用;正在设置其 changeCount 的那个。有没有这样的表达方式?或者有没有更好的方法来解决这个问题?