SQLite更新限制

时间:2018-04-14 15:22:45

标签: c# sql system.data.sqlite

如何在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子句生效,我还会如何限制更新的记录数量?

1 个答案:

答案 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