Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   facil a ver si se puede (http://www.forosdelweb.com/f86/facil-ver-si-puede-442879/)

normandos 13/11/2006 20:11

facil a ver si se puede
 
MYSQL Necesito hacer una consulta con diferentes valores numericos, por ej :
8
4
6
4
8
y quisiera que me devuelva la palabra “mayor” para todos los valores mayor a 5 y la palabra “Menor” si los valores son menor a 5.Para el ejemplo que presento quedaria
Ej. me devolveria:
DATO NUMERO
Mayor (8)
Menor (4)
Mayor (6)
Menor (4)
Mayor (8)

Es esto posible?
gracias

BrujoNic 13/11/2006 22:22

Código PHP:

SELECT CONCAT( IF(numero 5"Mayor""Menor"),
               
"(",numero,")""Dato Número" 
FROM tabla 


normandos 14/11/2006 20:49

Gracias Brujo Nic, en realidad no uso PHP, solo MYSQL pero me sirvio el ejemplo ya que use el IF y me anduvo, GRACIAS!!

BrujoNic 15/11/2006 18:21

De nada, y lo que dice al princio de Código PHP, NO es que sea php, es solo un modo para que la sentencia SQL se presente en varios colores, o sea, si pongo lo de arriba normalmente, quedaría así:

SELECT CONCAT( IF(numero > 5, "Mayor", "Menor"),
"(",numero,")") "Dato Número"
FROM tabla

Pero si lo encierro en [ php ] [ /php ] (Sin los espaciós) queda así:

Código PHP:

SELECT CONCAT( IF(numero 5"Mayor""Menor"),
               
"(",numero,")""Dato Número" 
FROM tabla 

Simplemente se usa (o yo lo uso) para encerrar código y quede de diferentes colores las sentencias del SQL con respecto a los nombres de campos y tablas.

normandos 15/11/2006 20:44

GRacias de nuevo Brujo Nic por la aclaracion que bien valio la pena. Siempre se aprende.
Como te comentaba pense que eso era codigo php (ahora me quedo claro que no) pero en ese entonces pensaba que si, asi que use esta parte "SELECT ( IF(numero > 5, "Mayor", "Menor")," y me anduvo muy bien.
Ahora mi duda es, el CONCAT, que funcion cumplia alli?

BrujoNic 15/11/2006 21:41

Es para concatenar cadenas o hileras.

Por ejemplo, si queres unir varias palabras como "esto", " es", " una", " prueba"... Utilizando la función CONCAT de MySQL seria:
Código PHP:

CONCAT("esto"" es"" una"" prueba"

Dando como resultado "esto es una prueba" (sin las comillas)

En el caso de lo que necesitas, lo que reflejé es que mostrara el resultado tal y como pusiste al principio, o sea:
DATO NUMERO
Mayor (8)
Menor (4)
Mayor (6)
Menor (4)
Mayor (8)

Lo anterior es igual a:
Código PHP:

CONCAT(IF(numero 5"Mayor""Menor"), "(",numero,")""Dato Número" 

IF(numero > 5, "Mayor", "Menor"), va a dar como resultado la palabra "Mayor" si numero > 5 o "Menor" si numero es <= 5.

Si numero es igual a 8 (como tu primer ejemplo) el resultado de ese IF es "Mayor", tomando ese resultado, utilizaremos el CONCAT para encerrar ese número entre paréntesis.

Código PHP:

CONCAT"Mayor""("numero")" 

Dando como resultado: Mayor(8)

Luego viene ponerle un título a la columna que es "Dato número".

Esa es la explicación.

Te recomiendo ir al sitio de MySQL y bajarte el manual, o revisarlo en línea sobre las funciones de hilera para que veas más ejemplos.

Saludos.

normandos 15/11/2006 22:59

tu explicacion ha sido super clara, de nuevo muchas gracias por tu tiempo y por ponerle tantas ganas!
:arriba:
Creo que doy por finalizada esta cuestion, pues no hay mas que se pueda agregar.
:aplauso: para ti.


La zona horaria es GMT -6. Ahora son las 02:54.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.