Что не так с синтаксисом MySQL?

274
14 марта 2018, 04:09

К примеру есть такой 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, но думаю это на ответ не повлияет.

Answer 1

Нет ошибки синтаксиса. Выражение 1 and is_empty = 1 легальное булево выражение и его результат присваивается is_closed.
Например,

select field1 and field2 from t;

выдаст результат булевой конъюнкции двух полей.

READ ALSO
Определение положения ToolTip относительно PlacementTarget

Определение положения ToolTip относительно PlacementTarget

Доброго времени сутокВожусь с собственным представлением ToolTip

235
Как сгенерировать числа c#

Как сгенерировать числа c#

Доброго времени суток! Как сгенерировать числа для стекаФункция Generate - ввыводит, но потом не могу отобразить ее через Display()

314
Задать номер месяца по его названию. C#

Задать номер месяца по его названию. C#

Имеется ComboBox, который хранит месяца года в текстовом форматеКак можно записать номер месяца в DataTime?

315