来自SELECT的多个UPDATE WHERE子句中的多行[Mysql]

时间:2017-07-13 09:03:27

标签: mysql sql

我有这个问题:

UPDATE Table1 SET Table1.parameterA = 1
  WHERE Table1.parameterB = ? 
  AND Table1.parameterC = (
    SELECT Table2.id 
    FROM Table2 
    WHERE Table2.parameterD = ? AND Table2.date > ?
  )

这不起作用,因为select返回多行:

{ Error: ER_SUBQUERY_NO_1_ROW: Subquery returns more than 1 row }

是否可以通过变通方法进行多次更新?

2 个答案:

答案 0 :(得分:3)

使用def destroy if @dog.destroy page = params[:page] #this is to check if we have more elements on the page or not @dogs = Dog.all.page(page).per(20) if @dogs.length == 0 page = (page - 1) > 1 ? page - 1 : 1 end redirect_to dogs_path(page: page) else # show some errors end end SQL时需要单个值。

如果您想使用结果列表 - 您应该使用IN,如下所示:

=

答案 1 :(得分:-1)

lock

-如何将多选值更新到mySQL数据库中