【发布时间】:2014-05-20 09:48:19
【问题描述】:
“非集体”不是正确的术语,所以请提出更好的描述,我会修改:)
基本上,我有一个查询如下:
SELECT
image_id, image_col1, image_col2
FROM
images
WHERE (
(image_col1 = 2 AND image_col2 = 3)
OR
(image_col1 = 2 AND image_col2 = 0)
OR
(image_col1 = 1 AND image_col2 = 0)
)
这将返回四行:
+----------+------------+------------+
| image_id | image_col1 | image_col2 |
+----------+------------+------------+
| 1| 2| 3|
+----------+------------+------------+
| 2| 2| 3|
+----------+------------+------------+
| 3| 2| 0|
+----------+------------+------------+
| 4| 1| 0|
+----------+------------+------------+
如果其中一个条件找到一些行,我想要它做的是忽略 WHERE 的其他部分,即在这个例子中,我只想要前两行,因为它们匹配第一个条件,如果没有匹配那个条件,我只想要第三行,因为它符合第二个条件。
目前,我正在运行 3 个查询,每个条件一个,然后使用第一个不是空结果的查询,但想尝试在一个查询中执行。
我基本上不希望它结合条件来查找与其中任何一个匹配的行,我希望它在条件返回时停止。
这可能吗?
【问题讨论】: