Использование 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;
Другие вопросы по тегам