Как использовать И и ИЛИ в одном выражении

Это мой SQL, и данные подаются PHP

SELECT COUNT(*) FROM table 
WHERE approve='true' AND `description`like '%".$name."%' OR  `name`like '%".$name."%' OR `location` like '%".$location."%'

Я могу просматривать записи, где approve есть false, когда обрабатываю этот запрос.

Какие ошибки вы получаете? Вы, вероятно, открыты для SQL-инъекций с этим кодом. Возможно, вам нужно использовать группировки (), потому что and будет конфликтовать с утверждениями or.

user3783243 22.12.2020 13:34

ИЛИ как использовать И и ИЛИ в одном выражении

dennis gaitungu 22.12.2020 13:36

этот sql должен содержать строки, которые утверждают = «истина», а теперь ищут описание и другие столбцы

dennis gaitungu 22.12.2020 13:40

В настоящее время он работает как approve='true' AND описаниеlike '%".$name."%', затем or, name like '%".$name."%', or и location like '%".$location."%'. Сгруппируйте биты or вместе, чтобы они были необязательными битами, как указано в ответе ниже.

user3783243 22.12.2020 13:43

Я обновил вопрос, как я думаю, он должен был быть написан, пожалуйста, исправьте, если это неверно.

user3783243 22.12.2020 13:46
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
5
203
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вероятно, условия ORed должны заключаться в круглые скобки:

SELECT COUNT(*) 
FROM table 
WHERE 
    approve = 'true' 
    AND (
        `description` like CONCAT('%', :name, '%') 
        OR  `name`    like CONCAT('%', :name, '%') 
        OR `location` like CONCAT('%', :location, '%') 
    )

(Я бы заменил заполнители на ? на случай, если mysqli используется)

user3783243 22.12.2020 13:39

Другие вопросы по теме