【问题标题】:Can I use LIMIT in SQLite3 together as a bound parameter?我可以在 SQLite3 中一起使用 LIMIT 作为绑定参数吗?
【发布时间】:2016-06-09 09:46:47
【问题描述】:

是这样的陈述

SELECT Name FROM Persons WHERE Name LIKE ?1 LIMIT ?2

在 SQLite3 中可能吗?对于?1,我可以在准备好语句后使用https://www.sqlite.org/c3ref/bind_blob.html 绑定参数。但这对?2 也有可能吗?我无法让它工作,现在我担心我必须为每个 LIMIT 值创建一个准备单独的语句,比如 1、10、100、1000 等。

【问题讨论】:

  • 没有。您必须通过连接字符串来传递它:"... WHERE Name LIKE ? LIMIT " + YourLimit.toString();
  • 有什么问题?一些错误信息?
  • @HrundiV.Bakshi 错了。 limit 子句是一个表达式,因此查询参数可以是它的一部分。
  • 我不明白为什么这个问题被降级了?我会欢迎一些关于它的反馈?在我看来,这是一个有效的问题,对其他人来说很有趣。也许我没有很好地解释这个问题?

标签: sqlite sqlbindparameter


【解决方案1】:

答案是肯定的。它适用于 ?2 与 ?1 相同。

int iReturn = sqlite3_bind_text(pStmt, index, acValue, -1, SQLITE_TRANSIENT);

对于限制,index 是 2,而 acValue 是一个计算为整数的字符串。我建议设置 SQLITE_TRANSIENT 以便 SQLite 复制 acValue。否则必须确保 acValue 不会超出范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多