【发布时间】:2018-11-29 12:24:31
【问题描述】:
我有一个表foo 有以下两列。 reference_uid 可以与 type CREATE 和 DELETE 相同。
+======================================================+
| reference_uid | type |
+======================================================+
| 180f28e3-6abd-45a8-b84c-410e908e62ed | CREATE |
| 180f28e3-6abd-45a8-b84c-410e908e62ed | DELETE |
+------------------------------------------------------+
下面的查询将两行都返回给我;
SELECT type FROM foo WHERE `reference_uid` = '180f28e3-6abd-45a8-b84c-410e908e62ed';
但我想要这样的查询只返回一行。如果 type = DELETE 的行存在,则返回 DELETE 类型的行,否则返回 CREATE 类型的行(注意 type=CREATE 的行将始终存在)。
我想我需要在 SELECT 语句中创建 SELECT 吗? 我的失败尝试是;
SELECT type FROM foo WHERE type IN (SELECT type FROM foo WHERE `reference_uid` = '180f28e3-6abd-45a8-b84c-410e908e62ed') WHERE type = "DELETE";
【问题讨论】:
-
当您说“列”时,您的意思似乎是“行”?
-
谢谢...更正:)