我正在嘗試運行一個帶有「FIND_IN_SET」的MySQL查詢。AND子句之後的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'
如果人們我從查詢的user_optin部分查詢中取出「OR's」。
是否有無論如何我可以使user_optin表達式找到一個「1」條目,而不是「0」條目。
我沒有設計這個數據庫,我意識到find_in_set不是MySQL數據庫查詢的最佳方法。
乾杯
也許把括號中的所有前面的'WHERE'子句明確地'拆分'這個子句? – 2014-11-04 08:31:35
Hi @ʰᵈˑhow我能做到嗎?我已經寫了這個查詢作爲ORM,但可以使它成爲一個RAW的MySQL查詢,而不是 – StuBlackett 2014-11-04 09:47:00
我將它作爲答案 – 2014-11-04 09:51:28