以下是我的查询,它没有在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'
答案 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的角度来看没有错误;你的逻辑只是一个错误。