mysql - sql subquery return more than 1 row
伊谢尔伦
伊谢尔伦 2017-04-17 15:29:52
0
2
669
update orders_father set ostatus=5,ofintimesys=now() where oid =
(select oid from
(SELECT oid FROM orders_father where TIMESTAMPDIFF(HOUR,odlvtime,now())>parameter and ostatus=4)
as tempTable)
;

这是代码1。

    update orders_father set ostatus=5,ofintimesys=now() where oid =any
(select oid from
(SELECT oid FROM orders_father where TIMESTAMPDIFF(HOUR,odlvtime,now())>parameter and ostatus=4)
as tempTable)
;

这是代码2,在oid=后面增加了any

我的疑问是,为何代码1会出现Error Code: 1242. Subquery returns more than 1 row
这种错误,而代码2不会? 谢谢各位大神

背景:我是在存储过程中使用的...

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(2)
黄舟

where xxx = yyy、右側は複数の値ではなく単一の値である必要があり、最初のステートメントでは

リーリー

は複数の値を検出するため、エラー Error Code: 1242. Subquery returns more than 1 row が報告されます

の解決策は、where xxx = yyywhere xxx in(yyy) または where xxx = any yyy に変更することです。これら 2 つの式は同じ意味を持ちますが、where xxx > any yyy

など、他の方法で比較することもできます。
いいねを押す +0
左手右手慢动作

どれもかなり入っています()

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート