【问题标题】:sqlite3_fts5 error when using punctuation使用标点符号时出现 sqlite3_fts5 错误
【发布时间】:2017-10-02 12:52:00
【问题描述】:

我有一个问题字符串变量,其中包含单词“我的车在哪里?”

当我尝试对此运行选择时,它会崩溃。

String sql = "Select * from tblHALv2001 WHERE tblHALv2001 MATCH '" + question + "'";

fts5: "?" 附近有语法错误

如果我从问题变量中删除问号,那么它会起作用。但是如何更正该语句以使其不会崩溃?

【问题讨论】:

  • 您使用哪种语言?
  • 我正在使用 C Sharp
  • 这让我发疯了。我已经尝试了所有我能想到的组合,但无论如何,如果我使用 ' 或 ?在查询文本中它倒下。
  • SQL 逻辑错误或缺少数据库 fts5: "?" 附近的语法错误

标签: sqlite fts5


【解决方案1】:

您不能简单地将任何随机字符串与 FTS 一起使用; MATCH 期望 FTS query 作为其右操作数。

您可以使用双引号来转义问号,但无论如何分词器都会忽略它。

【讨论】:

  • 你能给我举个双引号的例子吗?
  • 这就是我创建虚拟表的方式:
  • sql = "使用 fts5(question,answer,action,keywordPriority,keyword,keyword2,attach,tokenize=porter) 创建虚拟表 tblvHAL2001";
猜你喜欢
  • 1970-01-01
  • 2018-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多