У вас есть ошибка в вашем запросе, вам нужно изменить второй col2
на col3
.Ошибка будет легче увидеть, если вы переформатируете свой код:
SELECT * FROM foobar
WHERE (userid != '100' AND col1 REGEXP '[[:<:]]test[[:>:]]') OR
(userid != '100' AND col2 REGEXP '[[:<:]]test[[:>:]]') OR
(userid != '100' AND col2 REGEXP '[[:<:]]test[[:>:]]')
Я также добавил скобки, чтобы сделать порядок оценки понятным.Вы можете переписать свой запрос, чтобы избежать повторения выражения userid != '100'
.Затем просто добавьте пропущенное предложение:
SELECT * FROM foobar
WHERE userid != '100'
AND col4 <> 'y'
AND (
col1 REGEXP '[[:<:]]test[[:>:]]' OR
col2 REGEXP '[[:<:]]test[[:>:]]' OR
col3 REGEXP '[[:<:]]test[[:>:]]'
)