Я пытаюсь получить релевантные результаты поиска, используя следующий запрос JOIN:
SELECT
'products'.'id',
'brands'.'name' AS 'brand',
'products'.'name' AS 'productname',
MATCH ('brands'.'name') AGAINST ('somebrand someproduct' ) AS brandname_relevance
FROM
'brands'
INNER JOIN
'products' ON 'products'.'brand_id' = 'brands'.'id'
WHERE
MATCH ('products'.'name') AGAINST ('somebrand someproduct' ) AS /* AS is highlighted as 'not valid input at this point' */ product_relevance
ORDER BY (brandname_relevance + product_relevance) DESC
Однако, как отмечается в коде, "AS" выделяется как недопустимый в этом контексте MySQL Workbench. Запрос завершается с ошибкой.
Двигатель в обеих таблицах InnoDB, однако MySQL сервер версии выше 5.6 и полнотекстовый индекс включен как для brands.name
и products.name
. Пожалуйста, объясните, в чем проблема.
Это в предложении where - переместите его с другими полями в выбранном вами.
SELECT
'products'.'id',
'brands'.'name' AS 'brand',
'products'.'name' AS 'productname',
MATCH ('brands'.'name') AGAINST ('somebrand someproduct' ) AS brandname_relevance,
MATCH ('products'.'name') AGAINST ('somebrand someproduct' ) AS product_relevance
FROM
'brands'
INNER JOIN
'products' ON 'products'.'brand_id' = 'brands'.'id'
ORDER BY (brandname_relevance + product_relevance) DESC