Я создаю поиск веб-сайта для организации, которая работает с животными, подвергшимися насилию и безнадзорности, и все работает нормально, пока поиск не содержит определенного значения. Например, если кто-то наберет «черный текст» в поле поиска, он будет правильно искать эти термины и правильно отображать результаты. Однако, если они используют расширенный поиск и выбирают «Самец», результаты возвращаются с животными мужского и женского пола, как будто эта часть не имеет значения.
Вот пример SQL-выражения, полученного в результате поиска 'braxton black' и выбора 'Female' в качестве пола животных:
SELECT * FROM ans WHERE (ans_name LIKE '%braxton%' OR ans_name LIKE '%black%') OR (ans_color LIKE '%braxton%' OR ans_color LIKE '%black%') OR (ans_age LIKE '%braxton%' OR ans_age LIKE '%black%') OR (ans_desc LIKE '%braxton%' OR ans_desc LIKE '%black%') AND ans_sex = 'Female' GROUP BY ans_id
Все поля являются правильными, и термин в поле ans_sex является либо мужским, либо женским, поэтому он ищет точный термин. Может кто-нибудь увидеть какие-либо проблемы с этим оператором SQL, который вызывает проблему? Любая помощь с благодарностью.