SQLite 更新限制

SQLite Update Limit

如何在 SQLite 的 UPDATE 中使用 LIMIT 子句?

我尝试将选项添加到 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 子句起作用,我还能如何限制更新的记录数量?

您可以使用 子查询 获取可用于 userId 字段更新的记录。

假设这是您的 MyTable 内容:

id  userId
1   1
2   1
3   1
4   2
5   2

如果只想将userId=1的2条记录改成userId=3。您可以通过 ID select 这 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