【发布时间】:2020-09-22 17:43:26
【问题描述】:
说明
我正在尝试做类似的事情:
DELETE FROM ...
-- `<my_id>` is any given long scalar value
WHERE <my_id> = (SELECT id FROM ... WHERE ...);
这种语法并不完全正确。如果选择子查询包含多于一行,那么我们会收到如下错误:
标量子查询包含多于一行
不过,我的预期目的确实是:
- 如果子查询正好返回 1 个等于标量值 (
<my_id>) ==> 删除 - else(0 个或 2 个或多个值,或 1 个不相等的值)==> 请勿删除(忽略)
问题
我既不想要IN 也不想要EXISTS。我需要类似“equals”的东西,它可以将标量值与可能的多值行进行比较。
SQL 中的语法是什么?
堆栈
特别是,我正在使用 H2 进行测试。
【问题讨论】:
-
我删除了不一致的数据库标签。请仅使用您真正使用的数据库进行标记。
-
谢谢戈登????