在set子句中使用“and”代替“where”是否有效?我最近发现了一个关键的约束错误,但它已经存在了一段时间,据我所知从来都不是问题。
update table1
join table2 on
table1.id = table2.id
set table1.foo = 2
and table1.bar in (1,2,3)
我把最后一个“和”设为“where”,代码就起作用了。据我所知,它更新的值不会导致键约束。
编辑:更新查询以使其更接近原始查询,但相同的原则适用。
2条答案
按热度按时间pokxtpni1#
and
不能与一起使用set
但可以与where
更新表\u name set column1=value1,column2=value2。。。何处条件;因此您的sql需要更改:
s5a0g9ez2#
改变现状
and
至where
进行两个完全不同的查询。您的where版本会在bar值等于2的所有行上将foo设置为2。如果and版本有效,那么它最多只能将foo设置为(2 AND (bar is equal to 2))
,对于所有行。