如何在SQLite中的LIMIT
中使用UPDATE
子句?
我尝试将该选项添加到SQLConnection但它不起作用,我收到错误SQL logic error near LIMIT
SQLiteConnection connection = new SQLiteConnection("Data Source=" + outpath + ";Version=3;foreign keys=true;sqlite enable update delete limit=true");
string sql = @"
UPDATE MyTable
SET userId = @userId2
WHERE userId = @userId1
LIMIT @amount
";
如果无法使LIMIT
子句生效,我还会如何限制更新的记录数量?
答案 0 :(得分:1)
您可以使用子查询来获取userId
字段更新可用的记录。
让我们说这是您的MyTable
内容:
id userId
1 1
2 1
3 1
4 2
5 2
如果您只想将userId=1
的2条记录更改为userId=3
。您可以按ID选择这2条记录:
UPDATE MyTable
SET userId=3
WHERE id IN
(select id
from users
WHERE userId=1
LIMIT 2)
子查询获得与条件匹配的前2条记录的id
值,并将它们传递给WHERE id IN
。
前2条记录将受到影响,因为在子查询中没有使用ORDER BY
。