首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL错误: UPDATE和LIMIT用法不正确

MySQL错误: UPDATE和LIMIT用法不正确
EN

Stack Overflow用户
提问于 2010-11-27 21:20:07
回答 5查看 28.3K关注 0票数 31

我怎样才能纠正这个问题,使我的MySQL代码正常工作。

下面是我的MySQL代码,它解决了这个问题。

代码语言:javascript
运行
复制
$q = "UPDATE users INNER JOIN contact_info ON contact_info.user_id = users.user_id SET active.users = NULL WHERE (email.contact_info = '" . mysqli_real_escape_string($mysqli, $x) . "' AND active.users = '" . mysqli_real_escape_string($mysqli, $y) . "') LIMIT 1";
$r = mysqli_query ($mysqli, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($mysqli));
EN

Stack Overflow用户

发布于 2019-04-17 15:34:19

@Marc B提供了update通常不能与limit一起工作的原因。

@Roopchand也提供了一个解决方案。

对于像我这样试图避免关闭safe update mode的人来说

https://stackoverflow.com/a/28316067/1278112

这个答案很有帮助。它给出了一个例子

UPDATE customers SET countryCode = 'USA‘WHERE country = 'USA';--这会给出错误,您只需编写:

UPDATE customers SET countryCode =‘SET’WHERE (country =‘SET’AND customerNumber <> 0);--因为customerNumber是主键,所以不再出现错误1175。

当我使用多表语法面对update时,它也起作用了。

我想要什么,但会引发错误代码1175。

代码语言:javascript
运行
复制
UPDATE table1 t1
        INNER JOIN
    table2 t2 ON t1.name = t2.name 
SET 
    t1.column = t2.column
WHERE
    t1.name = t2.name;

工作版

代码语言:javascript
运行
复制
UPDATE table1 t1
        INNER JOIN
    table2 t2 ON t1.name = t2.name 
SET 
    t1.column = t2.column
WHERE
    (t1.name = t2.name and t1.prime_key !=0);

这真的很简单和优雅。由于最初的答案没有得到太多的关注(投票),我发布了更多的解释。希望这能帮助到其他人。

票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4291833

复制
相关文章

相似问题

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