我正在发送一个SQL查询,mySQL数据库的行为很奇怪。它返回一个成功的响应,但是0行会受到影响。守则是:
UPDATE place
SET city='Qatar' AND country='Qatar'
WHERE placeid='25'
Response: Successful 0 row(s) affected. ( Query took 0.0003 sec )
数据库中肯定有placeid='25‘的记录。如果我选择*从placeid='25‘的地方选择,我就会得到记录。
有什么想法吗?谢谢!
编辑:
Table structure:
SQL query: describe place;
Rows: 9
Field Type Null Key Default Extra
title text NO NULL
description text NO NULL
latitude float NO NULL
longitude float NO NULL
image text NO NULL
placeid int(11) NO PRI NULL
country text YES NULL
city text YES NULL
address text YES NULL
发布于 2010-12-29 13:19:22
试着用这个:
UPDATE place
SET city='Qatar', country='Qatar'
WHERE placeid=25
因为您的AND
在查询中听起来很奇怪。
发布于 2012-01-19 16:59:32
我注意到MySQL是“智能的”,不会将记录更新为数据库中已经存在的值。当我从Workbench运行update语句时,我第一次得到响应(从'a‘更新到'b'):
更新t.t设置s='b‘,其中k>0、1行(S)受影响的行匹配:1已更改:1警告:0
第二次我得到响应(从'b‘更新到'b'):
更新t.t设置s='b‘,其中k>0行受影响行匹配:1已更改:0警告:0
幸运的是,这行在事务中从未被较少地锁定。
发布于 2010-12-29 13:14:07
您确定placeId是varchar而不是数字吗?你试过没有“”?
UPDATE place SET city='Qatar' AND country='Qatar' WHERE placeid=25
https://stackoverflow.com/questions/4554391
复制相似问题