buenas!
yo quisiera saber como puedo darle prioridad a una condicion sobre otra en una consulta SQL, es decir q mire si cumple la 2º condicion SOLO si cumple la 1º
gracias por adelantado ;D
¿AND? ... Si se cumple la primera, se cumple la segunda :-\
SELECT *
FROM Tabla
WHERE Condicion1 AND Condicion2
usando un IF dentro del query.
por ejemplo:
select * from empleados where IF(salario > 3200,1,0) = 1
IF(condicion, valor si es verdadero, valor si es falso)
si salario es > a 3200 entonces kedaria : "where 1 = 1". aqui regresa campos.
si salario es < 3200 kedaria: "where 0 = 1". aqui no regresa nada.
espero haberme explicado.
saludz
genial!
muchas gracias ;D
piterpalomitas, dentro de una sentencia SQL en un gestor como MySQL puedes usar CASE o IF, solo que no sabria como responderte puntualmente porque no nos das mucha informacion...
puedes darte una idea leyendo aca
http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html
salu2
Es que esta claro que puede usar IF y CASE, pero si vamos al caso ... que es lo que hace el AND? lo mismo para lo que busca, si vas a mirar de ejecutar la segunda condición en caso de que la primera sea cierta, entonces debes de hacer que se cumplan las dos condiciones, es como decir .. filtrar todos los que sean "altos", y luego decir, "y si es alto, los que midan más de 2 metros", sería lo mismo poner "los que sean altos y midan más de 2 metros", pero como digo, depende de cada caso :rolleyes:
Saludos
AND lo que hace es evaluar el resultado de ambas condiciones y no el elegir verificar una - si se cumplio la otra
algo asi
2+2 > 4 AND 2+3>=5
como le dices a AND que ejecute la Expresion de su Derecha si la Expresion de su Izquierda es Verdadera?, nose puede, porque AND no hace eso, simplemente devuelve verdadero si ambas son verdaderas y devuelve falso si almenos una es falsa, y lo que quiere piterpalomitas es ejecutar X Expresion Logica, solo si la Primera es Verdadera, cosa que con AND es imposible de hacer
y lo que yo digo, es que con un CASE o con un IF dentro de la Expresion SQL esto se puede perfectamente
(posiblemente piterpalomitas este pensando hacer algo mas complejo)
si me he confundido díganmelo xD
Repito .. depende del caso! Mira la siguiente tabla
PersonasNombre | Edad |
Luis | 20 |
Carlos | 14 |
Damian | 20 |
Jose | 17 |
Como listarías los Nombres de quienes tienen
20 años de edad y cuyo nombre comienza por
"D", es decir, en el caso de que su nombre comience por
"D", entonces hay que ver si tienen
20 años, es decir, si se cumple la primera condición, entonces debe de cumplirse la segunda?
SELECT Nombre
FROM Personas
WHERE Left(Nombre,1)='D' AND Edad=20
Pero como digo, depende de como este planteado el caso, en algún caso le servirá un IF, y en otros un simple AND
Saludos
P.D: igual creo que lo que busca es el IF XD