2013-07-21 3 views
2

Когда я делаю запрос на обновление:MySQL не обновляется строка, которая явно существует

update sometable set somecolumn1='value' where somecolumn2 = 'value' 

в phpMyAdmin он говорит 0 rows affected. (Query took 0.0048 sec)

но когда я делаю:

select * from sometable where somecolumn2 = 'value' 

строка возвращается, то есть он существует. Почему строка не обновляется?

+9

Возможно, потому что строка уже настроена на точные значения, на которые вы ее устанавливаете. В этом случае он скажет «0 строк». –

+0

Ну пятно! MySQL умнее, чем я думал –

+2

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

ответ

1

Строка уже настроена на то же значение, которое вы пытаетесь установить. Так что mysql не нужно обновлять и указывать на нулевые строки. В случае, когда затрагивается только 1 строка, mysql должен сказать вам, что строка уже установлена ​​на это значение.

Pekka получил это правильно, но должен поставить вместо ответа «ответ», чтобы вопрос больше не появлялся в неотвеченном разделе переполнения стека. :)