У меня есть запрос MySQL, похожий на следующий:
SELECT *
FROM products
LEFT JOIN descriptions ON products.DescriptionID = descriptions.ID
WHERE MATCH (name, overview, specs) AGAINST ('ram');
Все столбцы, которые я пытаюсь найти с помощью MATCH() AGAINST()
, являются FULLTEXT, но я получаю следующую ошибку при тестировании в phpMyAdmin:
#1210 - Incorrect arguments to MATCH
Если я только MATCH
один столбец, это не ошибка и работает правильно, но как только я пытаюсь MATCH
несколько столбцов, это не с этой ошибкой. Я использую MySQL 5.0.45, а документация Функции полнотекстового поиска MySQL 5.0 предполагает, что я могу это сделать.
Это из-за LEFT JOIN
? Нужно ли OR
собрать кучу MATCH() AGAINST()
вызовов функций?
Обновление @Zak: Я не могу опубликовать операторы создания таблицы, но могу сказать, что в этом примере столбцы выглядят следующим образом: products.name
, descriptions.overview
, descriptions.specs
. Если я укажу их в полном формате table.column
, это не изменит поведение.
Однако, если я проиграю products.name
из MATCH()
, я получаю следующую ошибку:
#1191 - Can't find FULLTEXT index matching the column list
Но и descriptions.overview
, и descriptions.specs
являются ПОЛНЫМИ ТЕКСТАМИ.