我有这个问题:
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 }
是否可以通过变通方法进行多次更新?
答案 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数据库中