首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL UPDATE语句-返回成功但0行受影响

SQL UPDATE语句-返回成功但0行受影响
EN

Stack Overflow用户
提问于 2010-12-29 13:12:32
回答 3查看 21.1K关注 0票数 3

我正在发送一个SQL查询,mySQL数据库的行为很奇怪。它返回一个成功的响应,但是0行会受到影响。守则是:

代码语言:javascript
运行
复制
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‘的地方选择,我就会得到记录。

有什么想法吗?谢谢!

编辑:

代码语言:javascript
运行
复制
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     
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-29 13:19:22

试着用这个:

代码语言:javascript
运行
复制
UPDATE place 
SET city='Qatar', country='Qatar'
WHERE placeid=25

因为您的AND在查询中听起来很奇怪。

票数 16
EN

Stack Overflow用户

发布于 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

幸运的是,这行在事务中从未被较少地锁定。

票数 2
EN

Stack Overflow用户

发布于 2010-12-29 13:14:07

您确定placeId是varchar而不是数字吗?你试过没有“”?

代码语言:javascript
运行
复制
UPDATE place  SET city='Qatar' AND country='Qatar' WHERE placeid=25
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4554391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档