[LUG.ro] sentencia if en sql .. mysql
Mario Oroz
lugro@lugro.org.ar
Thu, 18 Oct 2007 12:10:54 -0300
Angel Aranciba escribió:
> hola,
> necesito hacer unas consultas en un solo querry un tanto complejas
> usando sql puro a un server de mysql. Tendria que hacer algo por el
> estilo de:
>
> if pasa algo a [%Variable%] then
> hacer estas sentencias de sql
> else
> hacer estas otras sentencias de sql
> end if
>
> digamos .. un tipico y querido if.
>
> El problema es que no se la sintaxis. buscando por el San G, termine
> en http://dev.mysql.com/doc/refman/5.0/es/if-statement.html
> pero la sintaxis que creo enteder de ahi no me anda.
>
> ejecuto desde phpmyadmin esta version reducida para testear la sintaxis:
>
> if 1<3 then SELECT `first_name` FROM `contacts`WHERE `phone_home` != ""
> end if;
>
> y me tira error de sintaxis. La sintaxis del select esta correcta.
> Segun vi por ahi, hay dos tipos de if distintos, uno que es un comando
> (no me sirve ya que las sentencias a ejecutar condicionalmente son muy
> distintas) y otro que es una sentencia.
>
> Cualquier ayuda es de utilidad,
>
> Saludos y gracias.
>
> PD: if o case .. me da igual, por ahi lei que el if no era estandar ..
> pero como es para hacer sobre mysql ...
El tema es que esta construcción esta enmarcada por lo que
veo en una *stored procedure* y por eso el interprete sql te dice
que no entiende el if.
Creo que si requiere cindicionalidad la ejecucion del comando sql
debes caer en procedimientos o funciones almacenadas.
A menos qeu pruebes hacer un:
SELECT IF <tal cosa> THEN <SQL-V> ELSE <SQL-F> END IF
y te funcione!
Saludos.
Mario