Имеется БД SQLite, а в ней заполненная таблица(data) FTS5 со столбцами: a, b, c
Содержимое таблицы для примера:
a|b|c
Что АБЫРВАЛГ может|ГЛАВРЫБА|Тузик
Мне необходимо осуществить поиск ТОЛЬКО по столбцам 'a' и 'b', при этом в запросе должен присутствовать и столбец 'с'.
Если использую запрос:
$stmt = $db->prepare("SELECT a, b, c FROM data WHERE data MATCH 'a:$fullQuery OR b:$fullQuery' ORDER BY id DESC LIMIT 5");
$stmt->bindValue(':fullQuery',$fullQuery, SQLITE3_TEXT);
Так он ищет по столбцам 'a', 'b' и 'c'
Например, введя запрос: "Что ГЛАВРЫБА может" - результат: "Что АБЫРВАЛГ может"
но результат даст и запрос: "Что Тузик может" - результат: "Что АБЫРВАЛГ может"
Если же исключаю столбец 'c':
SELECT a, b, c FROM data WHERE (a MATCH '{$fullQuery}' OR b MATCH '{$fullQuery}') ORDER BY id DESC LIMIT 5");
то как и требовалось, столбец 'c' не задействуется в поиске, но и не происходит поиск одновременно по столбцам 'a', 'b'. Либо по 'a,' либо по 'b'.
Например, введя запрос: "Что ГЛАВРЫБА может" - не даст результата, а дает результат только "Что АБЫРВАЛГ может" или "ГЛАВРЫБА".
Требуется, что бы работал такой запрос: "Что ГЛАВРЫБА может" - результат: "Что АБЫРВАЛГ может"(без участия в поиске столбца 'c' )