У меня есть таблица ингредиентов в моем db. Я хочу получить тот рецепт, который содержит некоторые ингредиенты и не содержит ингредиентов.Полнотекстовый поиск mysql
Например, у меня есть 2 рецепта, которые содержат «pav», но один из них не содержит «phudina». Теперь ниже приведены данные таблицы db.
Here in table(ingredients) recipeID 24(rcteID) contains pav and phudina
-----------------------------------------------------------------------
ingredientID rcteID ingredient
319 24 phudina
320 24 pav
Here in table(ingredients) recipeID 23(rcteID) not contains phudina
-----------------------------------------------------------------------
ingredientID rcteID ingredient
316 23 test
317 23 pav
318 23 puri
Теперь я хочу, чтобы этот рецепт идентификаторов, который содержит «пав», но не «phudina» так, здесь 23, но мой запрос дает мне как рецепты. Я применил полнотекстовый индекс в колонке ингредиентов.
Below is the query which I have written.
SELECT `Ingredient`.`ingredientID`, `Ingredient`.`rcteID`
FROM `bdrplus`.`ingredient` AS `Ingredient`
WHERE NOT(MATCH(`Ingredient`.`ingredient`) AGAINST('+phudina' IN BOOLEAN MODE))
AND MATCH(`Ingredient`.`ingredient`) AGAINST('+pav' IN BOOLEAN MODE)
GROUP BY `Ingredient`.`rcteID
Output
----------------------------
ingredientID rcteID
317 23
320 24
Expected
-----------------------------
ingredientID rcteID
317 23
В чем проблема с запросом?
Почему вы используете полнотекстовый поиск по столбцу, содержащему только одно слово? – Barmar