Я использую интерфейс SQLite C для написания приложения. Поскольку мне нравится безопасность, я использую подготовленные операторы для запроса базы данных. В одном из таких запросов я выбираю строки из виртуальной базы данных, используя ключевое слово MATCH для полнотекстового поиска. Вот пример:
SELECT * FROM Emails
WHERE ( Subject LIKE ?001 OR ?001 IS NULL )
AND ( Author LIKE ?002 OR ?002 IS NULL )
AND ( Body MATCH ?003 OR ?003 IS NULL )
Это позволяет пользователю вводить любые термины (Тема, Автор или Тело) по отдельности или в любой комбинации для выполнения поиска. Любой термин, который не введен, я буду связывать NULL с этим параметром. Проблема с этим утверждением состоит в том, что вы не можете использовать ключевое слово OR с ключевым словом MATCH. Я ищу оператор, который можно использовать с ключевым словом MATCH, чтобы вернуть все строки, если не выполняется поиск в столбце Body. Есть ли такое утверждение?