MySQL没有返回任何错误,但UPDATE命令不会更新任何内容

时间:2014-04-09 23:48:53

标签: php mysql sql

以下是我的查询,它没有在PHP MYADMIN上返回任何错误但是没有更新任何内容..任何想法为什么?我研究过,但我必须在一个查询中做到这一点

UPDATE products_images SET image_sort = 1 WHERE products_id =6362 AND image_type ='products_video_xl_dynamic_2' AND image_type ='products_video_sm_dynamic_2'

3 个答案:

答案 0 :(得分:3)

你有

image_type ='products_video_xl_dynamic_2' AND image_type ='products_video_sm_dynamic_2'

在WHERE子句中,image_type不能同时是两件事。

也许你想要

(image_type ='products_video_xl_dynamic_2' OR image_type ='products_video_sm_dynamic_2')

更新每个记录:xl OR sm

答案 1 :(得分:2)

确保image_type字符串的拼写和大小写正确

UPDATE products_images 
SET image_sort = 1 
WHERE products_id =6362 
AND image_type IN ('products_video_xl_dynamic_2', 'products_video_sm_dynamic_2')

您应该在您自己的查询中的两个image_type之间添加 OR ,它应该有效。上面的查询是MSSQL / SYBASE但是试一试。

答案 2 :(得分:0)

要回答标题问题,您应该知道匹配0条记录的UPDATE .. WHERE将无声地执行任何操作。克里斯托弗已经正确地确定了一场比赛是不可能的,这就是为什么它什么都不做。没有符合所有WHERE条件的行,因此不会更新任何行。

但是没有错误,因为从MySQL的角度来看没有错误;你的逻辑只是一个错误。