mysql上的组基查询

时间:2017-01-13 11:56:22

标签: php mysql sql

enter image description here 我需要选择所有的价值但是对于每一个价值都有不同的条件......

SELECT `csn`,`lsn` FROM `critical_limits` WHERE `limits` = 'vl'

SELECT `csp`,`lsp` FROM `critical_limits` WHERE `limits` = 'm'

并将它们存储在一个数组中。

2 个答案:

答案 0 :(得分:1)

您可以使用union all

SELECT `csn`,`lsn` FROM `critical_limits` WHERE `limits` = 'vl'
UNION ALL
SELECT `csp`,`lsp` FROM `critical_limits` WHERE `limits` = 'm';

注意:union会导致删除重复项的开销。通常这不是必需的,因此您应该使用union all

另一种选择是一堆CASE语句:

SELECT (CASE WHEN limits = 'vl' THEN csn ELSE csp END) as cs,
       (CASE WHEN limits = 'vl' THEN lsn ELSE lsp END) as lsp
FROM `critical_limits`
WHERE `limits` IN ('m', 'vl')

答案 1 :(得分:0)

var_dump($e->getPrevious());die;

您可以使用SELECT `csn`, `lsn` FROM `critical_limits` WHERE `limits` = 'vl' UNION ALL SELECT `csp`, `lsp` FROM `critical_limits` WHERE `limits` = 'm' 来合并查询。 UNION in the MySQL manual

您需要在UNION中拥有相同的列数,且列必须具有相同的数据类型。