Использование WHERE MATCH с предложением WHERE - PullRequest
0 голосов
/ 26 декабря 2018

Я получаю это сообщение об ошибке:

SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1064 В синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'WHERE c.id = 159 AND (supervisor_agent.superviso'

Пожалуйста, что мне не хватает? Все работает, когда яудалить:

AND WHERE c.id = 159 AND  
(
supervisor_agent.supervisor_id = 5
OR
ind.agent_id = 5
)

из запроса ниже;

SELECT

'individual' AS type, ind.id, ind.uid, CONCAT_WS(' ', ind.last_name, ind.first_name, ind.middle_name) AS title, NULL AS phone, c.name AS country, s.name AS state, l.name AS lga, MATCH (ind.uid,ind.tin,ind.email,ind.first_name,ind.last_name,ind.middle_name,ind.maiden_name,ind.gender,ind.marital_status) AGAINST ('+mbah*' IN BOOLEAN MODE) AS score 

FROM individuals AS ind

LEFT JOIN supervisor_agent ON ind.agent_id = supervisor_agent.agent_id LEFT JOIN countries AS c ON ind.country_origin_id = c.id LEFT JOIN states AS s ON ind.state_origin_id = s.id LEFT JOIN lgas AS l ON ind.lga_origin_id = l.id 

WHERE MATCH (uid,tin,email,first_name,last_name,middle_name,maiden_name,gender,marital_status) AGAINST ('+mbah*' IN BOOLEAN MODE) AND WHERE c.id = 159 AND  
(
supervisor_agent.supervisor_id = 5
OR
ind.agent_id = 5
)

1 Ответ

0 голосов
/ 26 декабря 2018

Проблема в

AND WHERE ...

Просто поставь AND

SELECT

'individual' AS type, ind.id, ind.uid, CONCAT_WS(' ', ind.last_name, ind.first_name, ind.middle_name) AS title, NULL AS phone, c.name AS country, s.name AS state, l.name AS lga, MATCH (ind.uid,ind.tin,ind.email,ind.first_name,ind.last_name,ind.middle_name,ind.maiden_name,ind.gender,ind.marital_status) AGAINST ('+mbah*' IN BOOLEAN MODE) AS score 

FROM individuals AS ind

LEFT JOIN supervisor_agent ON ind.agent_id = supervisor_agent.agent_id LEFT JOIN countries AS c ON ind.country_origin_id = c.id LEFT JOIN states AS s ON ind.state_origin_id = s.id LEFT JOIN lgas AS l ON ind.lga_origin_id = l.id 

WHERE MATCH (uid,tin,email,first_name,last_name,middle_name,maiden_name,gender,marital_status) AGAINST ('+mbah*' IN BOOLEAN MODE)
AND c.id = 159 AND  
(
supervisor_agent.supervisor_id = 5
OR
ind.agent_id = 5
)
...