MySQL:如何根据给定的值选择不同的查询?
是否可以通过SQL选择执行哪个查询?我需要将此逻辑集成到SQL中,因为无法通过应用程序本身实现 下面的查询可以做到这一点,但它总是同时执行两个查询。有没有一种方法可以做到这一点,而不必一直执行这两种操作MySQL:如何根据给定的值选择不同的查询?,mysql,Mysql,是否可以通过SQL选择执行哪个查询?我需要将此逻辑集成到SQL中,因为无法通过应用程序本身实现 下面的查询可以做到这一点,但它总是同时执行两个查询。有没有一种方法可以做到这一点,而不必一直执行这两种操作 SELECT time_sec, SUM(RIX), value FROM ( -- categories SELECT time_sec, RIX, value FROM cat WHERE $dimension IN (0
SELECT
time_sec,
SUM(RIX),
value
FROM (
-- categories
SELECT
time_sec,
RIX,
value
FROM
cat
WHERE $dimension IN (0,1)
UNION ALL
-- search
SELECT
time_sec,
RIX,
value
FROM
search
WHERE $dimension IN (0,2)
) t
GROUP by time_sec, value
如何更快地在基于$dimension的两个查询之间进行选择?计划A:使用存储过程会更快,因此您可以使用
IF
语句:
CREATE PROCEDURE ...
BEGIN
IF ( EXISTS(SELECT ...) ) -- or any other true/false test
THEN
SELECT ...
ELSE
SELECT ...
END IF
END
方案B:两个都做,然后扔掉一个:
SELECT a,b,c
FROM (
( SELECT 1 AS option, a,b,c FROM ... )
UNION ALL
( SELECT 2 AS option, a,b,c FROM ... )
) AS x
WHERE option = ...; -- Here is where you pick which one
计划B的限制:两个选择的列必须匹配