К примеру есть такой SQL запрос, пример:
update
house_rooms
set
is_closed = 1 and is_empty = 1
where
owner_id = ? and status = ?
Создан для примера, искать в нём логику не стоит, проблема в том что он отрабатывает, но ведь не должен же из-за того что в set указан неверный синтаксис, то есть если заменить:
set hr.is_closed = 1 and hr.is_empty = 1
На строку:
set hr.is_closed = 1, hr.is_empty = 1
Тогда он выполняется и меняет значения.
Сам вопрос: почему не выдает ошибку, а показывает что запрос отработал?
БД: MariaDB 10.2, но думаю это на ответ не повлияет.
Нет ошибки синтаксиса. Выражение 1 and is_empty = 1 легальное булево выражение и его результат присваивается is_closed.
Например,
select field1 and field2 from t;
выдаст результат булевой конъюнкции двух полей.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости