【问题标题】:SQLite Update LimitSQLite 更新限制
【发布时间】:2018-04-14 15:22:44
【问题描述】:

如何在 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 子句起作用,我还能如何限制更新的记录数量?

【问题讨论】:

    标签: c# sql system.data.sqlite


    【解决方案1】:

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

    假设这是您的MyTable 内容:

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

    如果您只想将userId=1 的两条记录更改为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

    【讨论】:

      猜你喜欢
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2014-06-22
      • 2012-09-16
      • 2017-04-06
      • 2017-07-22
      • 2012-08-03
      相关资源
      最近更新 更多