PHP / MYSQL:更新WHERE子句中缺少值的查询

时间:2015-12-10 08:40:02

标签: php mysql where-clause

我想我知道答案,但想得到确认。

如果你有一个带有where子句的简单更新查询,并且缺少where子句中变量的值,那是否意味着每条记录都会更新?

//let's say $name is empty

UPDATE users SET name= 'Jason' WHERE userid = '$name'

is that the same as 

UPDATE users SET name= 'Jason' WHERE userid = ''

每条记录都会更新的行为吗?

如果是这样,你可以在SQL中放置什么来防止这种潜在的灾难吗?

感谢您的指导。

2 个答案:

答案 0 :(得分:4)

两个查询都将更新userid列为空的所有记录。但这并不意味着userid值等于NULL的行会受到影响。如果您想对WHERE列使用NULL,请阅读how to working with NULL values

答案 1 :(得分:1)

如果变量为空,或者没有值或“”,并且在表上没有userid为空或空的记录,则不会更新任何记录,因为where-condition会有利没有记录,但是如果有任何记录为空userid,则记录将使用您提供给相应列的值进行更新。