【问题标题】:Using MATCH with AND/OR operators with parameters doesn't work in SQLite将 MATCH 与带参数的 AND/OR 运算符一起使用在 SQLite 中不起作用
【发布时间】:2016-10-08 15:09:56
【问题描述】:

我在使用参数时使用匹配和/或运算符时执行 select 语句时遇到问题。

语句如下所示:

SELECT ColumnName1, ColumnName2 
FROM TableName 
WHERE TableName MATCH 'ColumnName1:@param1 AND ColumnName2:@param2';

但是当我用真实值更改@param1 和@param2 时,例如像这样

SELECT ColumnName1, ColumnName2 
FROM TableName 
WHERE TableName MATCH 'ColumnName1:Value AND ColumnName2:Value';

效果很好。

我想问题是我的 AND 语句周围的那些单引号。有什么方法可以避免它们,但仍然可以使用和/或操作符,或者在其他地方有问题?

【问题讨论】:

    标签: sql sqlite full-text-search fts4


    【解决方案1】:

    您不能使用 SQL 参数来替换参数的一部分,但也许您可以使用字符串连接(我没有测试过):

    ... MATCH 'ColumnName1:' || @param1 || ' AND ColumnName2:' || @param2;
    

    否则,您必须采用规范的方式,在您的应用程序中构建字符串并将其作为单个参数提供:

    ... MATCH @param;
    

    【讨论】:

      猜你喜欢
      • 2015-02-26
      • 1970-01-01
      • 2021-06-26
      • 2016-10-24
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多