为什么UPDATE查询不起作用

时间:2016-05-30 19:37:33

标签: mysql sql

这是我的代码

UPDATE project SET name = 'New Name' AND platform = 'iOS' WHERE id = 2

当我通过phpMyAdmin处理它时,它将名称更改为0。当我重新运行查询时,它表示0行受影响。当我将名称更改回其他内容并重新运行查询时,它会说1行受影响,但将名称更改回0而不是其他任何内容。

我做错了什么?

我的表格结构合适,并且记录为id=2

4 个答案:

答案 0 :(得分:3)

删除AND并改为使用,

UPDATE project SET name = 'New Name', platform = 'iOS' WHERE id = 2

答案 1 :(得分:2)

您的UPDATE语法错误。它应该是这样的:

UPDATE project SET name = 'New Name', platform = 'iOS' WHERE id = 2

MySQL正在将name更改为0,因为它对AND的含义感到困惑。 MySQL可能会将该语句解释为逻辑表达式,该表达式转换为1的{​​{1}}或TRUE的{​​{1}}(在本例中为后者)

考虑这样的原始查询,括号用于说明operator precedence

0

答案 2 :(得分:1)

UPDATE project SET name = 'New Name', platform = 'iOS' WHERE id = 2

答案 3 :(得分:1)

根据您的目的,正确的语法是

FALSE

UPDATE project SET name = ('New Name' AND (platform = 'iOS')) WHERE id = 2