Я пытаюсь запустить MySQL Query с «FIND_IN_SET» в нем.И предложение FROM после предложения OR
Запуск запрос работает, но мне также нужно найти «user_optin», где он равен 1.
Запуск этого запроса в настоящее время находит людей, которые user_optin как «0»
SELECT `user_id`, `user_firstname`, `user_surname`, `user_email`, `user_type`, `user_optin`
FROM (`users`)
WHERE `user_type` = 'Volunteer'
AND 1 <=FIND_IN_SET(1, user_interests)
OR 1 <=FIND_IN_SET(2, user_interests)
OR 1 <=FIND_IN_SET(5, user_interests)
OR 1 <=FIND_IN_SET(6, user_interests)
OR 1 <=FIND_IN_SET(7, user_interests)
OR 1 <=FIND_IN_SET(8, user_interests)
OR 1 <=FIND_IN_SET(10, user_interests)
AND 1 <=FIND_IN_SET(1, user_activities)
OR 1 <=FIND_IN_SET(2, user_activities)
OR 1 <=FIND_IN_SET(4, user_activities)
OR 1 <=FIND_IN_SET(5, user_activities)
OR 1 <=FIND_IN_SET(11, user_activities)
OR 1 <=FIND_IN_SET(12, user_activities)
OR 1 <=FIND_IN_SET(14, user_activities)
AND `user_optin` = '1'
Если Я беру «OR» из запроса, выполняемого частью запроса user_optin.
В любом случае я могу сделать user_optin explict, чтобы найти запись «1», а не «0».
Я не проектировал эту базу данных, и я понимаю, что find_in_set - не лучший метод для запросов к базе данных MySQL.
Приветствия
Возможно, скопируйте все предыдущие предложения WHERE в скобки, чтобы явно «разбить» предложения? –
Привет @ ʰᵈˑ Как я могу достичь этого? Я написал этот запрос как ORM, но могу вместо этого сделать запрос RAW MySQL. – StuBlackett
Я отправлю его в качестве ответа –