Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/11/2008, 05:08
Avatar de SUSMO
SUSMO
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Condicional en un where

Hola a todos,

Necesito hacer una query con un condicional en el where y no se como hacerla, de hecho no se si se puede ya que en la documentación de MYSQL el condicional, ya sea CASE o IF lo ponen en el SELECT y no en la parte del WHERE.

Me explico, tengo la siguiente tabla que guarda la traducción del nombre de los campos dependiendo del idioma:

columnas:
col_name ------- malg_code ------ lang

datos:
user_id ----------- ang --------------- User
user_id ----------- cas ---------------- Usuario
user_id ----------- cat ----------------- Usuari
password -------- ang ---------------- Password
password -------- cas ---------------- Contraseña
password -------- cat -----------------
email -------------- ang ---------------- Mail
email -------------- cas ---------------- Correo
email -------------- cat ---------------- Correu

El caso es que la query me tiene que devolver el nombre del campo (p.ej: user_id) y el nombre traducido según un idioma concreto (p.ej: User) mi problema es que si el campo no tiene traducción en ese idioma como es el password con el código cat me tiene que devolver otro idioma, por ejemplo el inglés.

Mi idea es hacer una consulta del estilo siguiente:

Código PHP:

SELECT col_name
l.malg__codel.lang_name as lang
FROM userstc_malg l
WHERE 
IF (malg__code "cas" and l.lang_name != ""THEN (malg__code "ang"
Es decir, si el lenguaje según el código de idioma está vacío que me muestre la traducción en otro idioma.
La cosa está en hacerlo en una sola consulta.
¿Alguien sabe como puedo hacerlo?

Saludos,
__________________
Perdida en el mundo del conocimiento