[LUG.ro] Re: Lugro digest, Vol 1 #2638 - 13 msgs

Luis M. Melgratti lugro@lugro.org.ar
Fri, 19 Oct 2007 12:01:58 -0300


Yo suelo hacer lo siguiente para evaluar condiciones en las SQLs

select (case when (variable < 3) then (select campoN from TABLAX where
algo = otracosa) else 'valor_por_defecto" end) from TABLAY

en realidad son dos selects, una como subselect dentro de un case (que
son algo mas sencillos en su sintaxis).
Saludos.
pd: no lo puedo probar justo ahora para mandarte otro ejemplo por que
mi actualizacion a Gutsy me apago mysql por un rato.


> Message: 6
> Date: Thu, 18 Oct 2007 11:32:38 -0300
> From: "Angel Aranciba" <angel.arancibia@gmail.com>
> To: lugro@lugro.org.ar
> Subject: [LUG.ro] sentencia if en sql .. mysql
> Reply-To: lugro@lugro.org.ar
>
> 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 ...
>