LINUX.ORG.RU
ФорумAdmin

MariaDB обновляет значения столбцов в NULL

 


0

1

Добрый день коллеги!
Столкнулся со странным поведением MariaDB.
Выполняю запрос
UPDATE table1 SET fullname = (SELECT name FROM table2 WHERE id = 1) WHERE id = '100';
и если
SELECT name FROM table2 WHERE id = 1
ничего не возвращает, то UPDATE устанавливает в fullname значение NULL. Когда работали с MySQL, то в аналогичном запросе, значение поля fullname не изменялось. Может есть у кого какие мысли, почему такая разница в поведении?

Вроде как-раз логично. Вложенный запрос ничего не возвращает, т.е. он возвращает NULL

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

да, я с вами согласен, и сейчас протестировал подобную связку на MariaDB и MySQL. В обоих СУБД одинаковый и ожидаемый результат. Возможно когда впервые столкнулись с этой проблемой, что-то делали не так. Спасибо

rootsergio
() автор топика

Когда работали с MySQL, то в аналогичном запросе, значение поля fullname не изменялось.

не верю.

surefire ★★★
()
Ответ на: комментарий от rootsergio

Попробуй использовать IFNULL, что-то типа этого.

UPDATE table1 SET fullname = IFNULL((SELECT name FROM table2 WHERE id = 1), fullname) WHERE id = '100';

А вообще я бы так не оставлял, наверняка есть более лучшее решение.

surefire ★★★
()
Ответ на: комментарий от surefire

Спасибо большое, этот вариант работает. Пока не найдём лучшее решение, можно использовать его.

rootsergio
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.