【问题标题】:UPDATE with SELECT and LIMIT使用 SELECT 和 LIMIT 更新
【发布时间】:2013-10-15 11:57:24
【问题描述】:

我正在尝试做这个例子:

UPDATE box 
    SET idsector=19,
        fechaasignacion='2013-10-04 10:12:30', 
        resumen='bla bla bla', 
        palabrasclave='papapa papapapa',
        libre=0, publico=1 
WHERE idbox = (SELECT idbox FROM box WHERE libre=1 LIMIT 1);

我收到此错误“[Err] 1235 - 此版本的 MySQL 尚不支持 'LIMIT & IN/ALL/ANY/SOME 子查询'”但是,阅读 mysql 参考手册它应该与 LIMIT 一起使用。

此查询必须更新表框中的一个字段,并且 WHERE 子句指定必须找到并选择值为“libre=1”的第一个字段。希望你能理解

【问题讨论】:

  • MySQL 也不支持在子选择中使用正在更新的表。您需要将您的语句重写为连接。

标签: mysql select limit


【解决方案1】:

为什么不在更新查询中使用子查询的 where 子句?像这样:

UPDATE box 
    SET idsector=19,
        fechaasignacion='2013-10-04 10:12:30', 
        resumen='bla bla bla', 
        palabrasclave='papapa papapapa',
        libre=0, publico=1 
WHERE libre=1 
LIMIT 1;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2013-08-19
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 2020-05-20
    相关资源
    最近更新 更多