MySql根据不同的条件从同一个表中选择列

时间:2018-06-13 13:32:19

标签: mysql stored-procedures

我必须在表上运行多个选择并获取2列的结果集。我找到的一个解决方案是使用 UNION ,如下所示。

SELECT cap_id, cap_code FROM cap_master
where cap_type = 'Type1' and cap_desc = 'CapDesc1' 
 UNION
SELECT cap_id, cap_code FROM cap_master
where cap_type = 'Type2' and cap_desc = 'CapDesc2' 

还有其他方法可以做到这一点。一次可能有大约10-20个选择语句。这会影响性能,如果是这样,那么什么是更好的方法。

1 个答案:

答案 0 :(得分:1)

我认为你应该能够使用WHERE语句使用一个带有更大OR子句的查询。

实施例

SELECT cap_id, cap_code
FROM cap_master
WHERE (cap_type = 'Type1' AND cap_desc = 'CapDesc1`) 
    OR (cap_type = 'Type2' AND cap_desc = 'CapDesc2')

仅当cap_typecap_desc是特定值时,才能获得结果。