【问题标题】:Cant make a mysql query with update and limit work无法使用更新和限制工作进行 mysql 查询
【发布时间】:2015-04-11 09:53:01
【问题描述】:

我正在编写需要使用此代码的脚本:

UPDATE articles 
  SET name="Alianza oro rosa y diamante ", 
      desc="Alianza oro rosa y diamante " 
LIMIT 0, 1 

我应该怎么做才能让它工作?

【问题讨论】:

标签: mysql sql-update limit


【解决方案1】:

如果你省略0,

UPDATE articles 
  SET name        = "Alianza oro rosa y diamante ", 
      description = "Alianza oro rosa y diamante " 
LIMIT 1;

根据documentation,您不能在LIMIT 子句中添加偏移量。不幸的是 LIMIT 在子查询中不起作用。

检查this Fiddle

附言:潜在的解决方案(根据评论):

UPDATE articles 
  SET donttouch = false -- reset marker
WHERE donttouch = true; 

UPDATE articles 
  SET donttouch = true 
LIMIT 1; -- offset

UPDATE articles 
   SET name        = "Alianza oro rosa y diamante ", 
       description = "Alianza oro rosa y diamante " 
 WHERE donttouch = false
 LIMIT 1; -- number of entries

这使用了一个额外的列 (Fiddle)。

【讨论】:

  • 问题是我需要遍历表的所有行(使用 while 语句)一一更改它们,所以想法是这样的:LIMIT 0, 1 LIMIT 1 , 1 LIMIT 2, 1 一直到
  • 该死的......所以我想我能去的唯一方法是删除所有行并重写它们
  • @chino:我尝试了一些东西(子选择,参数化视图,...),但我的想法都不是很好。关闭是基于这个帖子的想法:stackoverflow.com/questions/10728775/…;所以我的版本是sqlfiddle.com/#!9/10b66/1
【解决方案2】:

据我所知,limit 子句只接受一个数字,而不是像 select 语句中的 x、y 格式。

UPDATE articles 
  SET name="Alianza oro rosa y diamante ", 
      desc="Alianza oro rosa y diamante " 
LIMIT 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 2017-05-28
    • 2023-03-07
    相关资源
    最近更新 更多