2016-06-05 2 views
-1

Нужно обновить поле в базе данных, но когда я делаю запрос, он пишет мне «0 строк, затронутых», хотя поле изображения и пусто.Назначение значения пустому полю

UPDATE `oc_product` SET `image`= 'no_image.png' WHERE `image`=''; 
+0

ли вы какие-либо записи при вводе выберите * из oc_product WHERE ' image' = ''; – Filype

+0

Нет, я не хочу. Знаете ли вы, что это может быть причиной? – Danilkalmykov

+0

Кажется, что он отлично работает в [скрипте SQL] (http://sqlfiddle.com/#!9/8f7e37/1). Вы уверены, что это пустая строка? Если это так, то это не пустая строка, как вы думаете (* ex: пробел, нуль и т. Д. *). –

ответ

1

Вашего запроса проверки значения пустой строки, хотя от того, что вы показали значение, которое вы действительно хотите изменить имеет значение NULL. Это два разных значения, NULL не равно ''. Таким образом, если вы хотите, чтобы заменить элементы, которые имеют NULL значение, вы должны изменить ваше где заявление о том, что (WHERE image IS NULL):

UPDATE `oc_product` SET `image`= 'no_image.png' WHERE `image` IS NULL; 
0

ли выбрать запрос возвращает все строки выбрать изображение из oc_product WHERE изображения = «»;

Если да добавить другие поля confition, а также проверить, является ли он получать пострадавших Овертаймы не пример

UPDATE oc_product SET изображение = 'no_image.png' WHERE (изображение = "" И образ IS NULL) и other_column = «значение столбца»;

Надеется, что это полезно для вас :)

+0

Я попытался сделать такой запрос в базу данных UPDATE oc_product SET image = 'no_image.png' WHERE (image = "" AND image IS NULL), но он возвращает 0 строк. При этом я не вижу никаких записей, когда вы набираете select * from oc_product WHERE image = '' '; – Danilkalmykov

+0

@ Danilkalmykov Тогда у вас явно нет элементов с пустой строкой в ​​качестве значения. –

+0

См. Экран http://imgur.com/721LO1O – Danilkalmykov

Смежные вопросы