Думал, что этот запрос MySQL работает и возвращает результаты, но он игнорирует бит: where published = '1' part и показывает все результаты независимо от того, какое значение опубликовано.
Я думаю, что это имеет какое-то отношение к наличию скобок вокруг определенных бит запроса, но попробовал его различными способами и, похоже, не в состоянии понять это правильно.
Вот как у меня есть запрос на данный момент:
SELECT *
FROM news
WHERE published='1'
AND title LIKE '%$q%'
OR details LIKE '%$q%'
ORDER BY id DESC
Любая помощь ценится!
Вы должны применить явные скобки:
SELECT *
FROM news
WHERE published='1'
AND (title LIKE '%$q%' OR details LIKE '%$q%')
ORDER BY id DESC
В вашем примере с неявной скобкой он работал так:
WHERE (published='1' AND title LIKE '%$q%')
OR details LIKE '%$q%'
Потому что and
имеет более высокий приоритет оценки, чем or
.