Использование MATCH с операторами AND/OR с параметрами не работает в SQLite
У меня проблема с выполнением оператора select при использовании операторов match и / или при использовании параметров.
Утверждение выглядит так:
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. Есть ли способ избежать их, но все еще быть в состоянии использовать и / или операторов или проблема в другом месте?
1 ответ
Решение
Вы не можете использовать параметры SQL для замены частей аргумента, но, возможно, вы сможете использовать конкатенацию строк (я не проверял это):
... MATCH 'ColumnName1:' || @param1 || ' AND ColumnName2:' || @param2;
В противном случае вам придется пойти по каноническому пути, собрать строку в своем приложении и предоставить ее в виде единого параметра:
... MATCH @param;