将 MATCH 与带参数的 AND/OR 运算符一起使用在 SQLite 中不起作用
Using MATCH with AND/OR operators with parameters doesn't work in SQLite
我在使用参数时使用匹配和 and/or 运算符时执行 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 语句两边的单引号上。有什么方法可以避免它们但仍然可以使用 and/or 运算符还是其他地方有问题?
您不能使用 SQL 参数来替换参数的一部分,但也许您可以使用字符串连接(我没有对此进行测试):
... MATCH 'ColumnName1:' || @param1 || ' AND ColumnName2:' || @param2;
否则您将不得不采用规范方式,在您的应用程序中构建字符串并将其作为单个参数提供:
... MATCH @param;
我在使用参数时使用匹配和 and/or 运算符时执行 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 语句两边的单引号上。有什么方法可以避免它们但仍然可以使用 and/or 运算符还是其他地方有问题?
您不能使用 SQL 参数来替换参数的一部分,但也许您可以使用字符串连接(我没有对此进行测试):
... MATCH 'ColumnName1:' || @param1 || ' AND ColumnName2:' || @param2;
否则您将不得不采用规范方式,在您的应用程序中构建字符串并将其作为单个参数提供:
... MATCH @param;