这是我的代码
UPDATE project SET name = 'New Name' AND platform = 'iOS' WHERE id = 2
当我通过phpMyAdmin处理它时,它将名称更改为0
。当我重新运行查询时,它表示0行受影响。当我将名称更改回其他内容并重新运行查询时,它会说1行受影响,但将名称更改回0而不是其他任何内容。
我做错了什么?
我的表格结构合适,并且记录为id=2
答案 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