EDITAR: Lo que dije a continuación sobre la necesidad de un procedimiento almacenado NO ES CIERTO. Prueba esto:
SELECT CASE WHEN ( (SELECT COUNT(*) FROM table WHERE term LIKE "term") > 4000 )
THEN <QUERY A>
ELSE <QUERY B>
END
Esta es, de hecho, una expresión de caso, y funciona bien fuera de un proceso almacenado :-)
Por ejemplo:
mysql> SELECT CASE WHEN ( 5 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END;
+---------------------------------------------------------------------+
| CASE WHEN ( 5 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END |
+---------------------------------------------------------------------+
| foo |
+---------------------------------------------------------------------+
1 row in set (0.01 sec)
mysql> SELECT CASE WHEN ( 3 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END;
+---------------------------------------------------------------------+
| CASE WHEN ( 3 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END |
+---------------------------------------------------------------------+
| bar |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)
Respuesta anterior a continuación por interés histórico, ya que ya reúne votos a favor:
Creo que puede usar lo siguiente, pero solo dentro de un procedimiento almacenado:
CASE (SELECT COUNT(*) FROM table WHERE term LIKE "term") > 4000
WHEN 1 THEN <QUERY A>
ELSE <QUERY B>
END CASE
Este es un CASE
declaración, a diferencia de un CASE
expresión... https://dev.mysql.com/doc /refman/5.0/en/case.html
tiene más detalles sangrientos.
En realidad, sospecho que, en general, si desea ejecutar diferentes consultas de forma condicional, tendrá que buscar procedimientos almacenados; podría estar equivocado, pero esa es mi intuición en este momento. Si puedes hacerlo, ¡probablemente será con expresiones CASE!
Una última edición:en cualquier ejemplo del mundo real, probablemente haría el bit condicional en mi aplicación y simplemente pasaría a SQL (o a un ORM que generaría mi SQL) una vez que hubiera decidido qué buscar.