我需要选择所有的价值但是对于每一个价值都有不同的条件......
SELECT `csn`,`lsn` FROM `critical_limits` WHERE `limits` = 'vl'
和
SELECT `csp`,`lsp` FROM `critical_limits` WHERE `limits` = 'm'
并将它们存储在一个数组中。
答案 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
中拥有相同的列数,且列必须具有相同的数据类型。