MySQL:如何根据给定的值选择不同的查询?

MySQL:如何根据给定的值选择不同的查询?,mysql,Mysql,是否可以通过SQL选择执行哪个查询?我需要将此逻辑集成到SQL中,因为无法通过应用程序本身实现 下面的查询可以做到这一点,但它总是同时执行两个查询。有没有一种方法可以做到这一点,而不必一直执行这两种操作 SELECT time_sec, SUM(RIX), value FROM ( -- categories SELECT time_sec, RIX, value FROM cat WHERE $dimension IN (0

是否可以通过SQL选择执行哪个查询?我需要将此逻辑集成到SQL中,因为无法通过应用程序本身实现

下面的查询可以做到这一点,但它总是同时执行两个查询。有没有一种方法可以做到这一点,而不必一直执行这两种操作

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的限制:两个选择的列必须匹配