what's the total number of "p"s in:
q: почему условие where in не работает вместе с where like? делаю простой поиск по пользователям. необходимо выбрать из таблицы всех пользователей, у кого имеется один id из списка [70, 53, 21, 41], и добавить несколько других условий для выборки (where like). получается следующий sql-запрос:
select * from `users`
where `id` in (70, 53, 21, 41)
and `first_name` like '%asd%'
or `last_name` like '%asd%'
or `email` like '%asd%'
or `phone` like '%asd%'

при выполнении запроса выдаются пользователи, которые отсортированы по условию where like, но без сортировки по id. при этом, если строить такой запрос:
select * from 
(select * from `users` where `id` in (70, 53, 21, 41)) as `filtered` 
where `first_name` like '%asd%' 
or `last_name` like '%asd%' 
or `email` like '%asd%' 
or `phone` like '%asd%'

то всё работает прекрасно. интересно, почему в первом варианте не выполняется запрос where in?

a: для соблюдения условия выбора по лайку в представленном множестве не хватает выделить эти доп. условия в скобки, чтобы они читались как отдельное атомарное условие. в ином случае происходит поиск по условиям or без учёта условия поиска по in.
select * from `users`
where `id` in (70, 53, 21, 41)
and (`first_name` like '%asd%'
    or `last_name` like '%asd%'
    or `email` like '%asd%'
    or `phone` like '%asd%'
)


user
The given text has 3 "p"s.
assistant