Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta que borra de los ceros de delante de un campo ZEROFILL

Estas en el tema de Consulta que borra de los ceros de delante de un campo ZEROFILL en el foro de Mysql en Foros del Web. Hola buenas, estoy usando una consulta MYSQL que me borra los ceros de delante de todos los valores de un campo ZEROFILL. Antes en mysql4 ...
  #1 (permalink)  
Antiguo 19/05/2008, 17:03
 
Fecha de Ingreso: abril-2004
Mensajes: 310
Antigüedad: 20 años
Puntos: 0
Consulta que borra de los ceros de delante de un campo ZEROFILL

Hola buenas, estoy usando una consulta MYSQL que me borra los ceros de delante de todos los valores de un campo ZEROFILL. Antes en mysql4 me funcionaba, pero ahora en mysql5 no. La consulta es la siguiente:

$sql = "(select * FROM productos join cosas ON productos.PID=cosas.PID WHERE cosas.E_TIPO='$scid' AND productos.PSTOCK<>0 ORDER BY cosas." . $sort . " " . $type ." LIMIT ". $inicial ."," .$cantreg. ") UNION (select * FROM productos join cosas ON productos.PID=cosas.PID WHERE cosas.E_TIPO='$scid' AND productos.PSTOCK=0 ORDER BY cosas." . $sort . " " . $type ." LIMIT ". $inicial ."," .$cantreg. ")";

La fila/campo con atributos ZEROFILL es una fila/campo de la tabla productos llamada PCOD tal que:
Campo Tipo Atributos Nulo Predeterminado
PCOD int(4) UNSIGNED ZEROFILL No 0000

Con la consulta anterior, me devuelve los valores del campo ZEROFILL sin los ceros de delante, mientras que si quito el UNION + 2ª consulta sí me devuelve bien los valores. El UNION creo que es el causante.

¿Alguna solución para que no me quite los ceros y la consulta sea la misma?
La idea de la consulta es que me coja todos los productos de el tipo determinado que tengan Stock mayor de 0 (productos.PSTOCK<>0) y que justo después me añada los productos de stock cero (productos.PSTOCK=0) para que así luego los tenga ordenados de esa forma en el array de recogida.

Graciasss!
  #2 (permalink)  
Antiguo 19/05/2008, 22:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Tendrás que seleccionar los campos uno a uno. Te pongo solo dos campos, PCOD y PSTOCK. Fíjate en que el número de caracteres entre paréntesis del CHAR(?) debe ser el mismo que la longitud del INT de PCOD. En el ejemplo te he puesto 4, como tú tenías. He añadido un alias mediante AS para poder recoger el dato en PHP. Acomoda esta consulta a la tuya e intégrala en PHP.

(SELECT CAST(PCOD AS CHAR(4)) AS PCOD, PSTOCK FROM productos WHERE PSTOCK <> 0)
UNION
(SELECT CAST(PCOD as CHAR(4)) AS PCOD, PSTOCK FROM productos WHERE PStOCK = 0)
  #3 (permalink)  
Antiguo 20/05/2008, 08:56
 
Fecha de Ingreso: abril-2004
Mensajes: 310
Antigüedad: 20 años
Puntos: 0
Respuesta: Consulta que borra de los ceros de delante de un campo ZEROFILL

Perfecto funciona bien. Muchas Gracias jurena.
  #4 (permalink)  
Antiguo 20/05/2008, 08:59
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Respuesta: Consulta que borra de los ceros de delante de un campo ZEROFILL

Por favor...

MySQL NOOOOOOOO comprende variables de programación. Si se quiere hacer preguntas en esta sección, que sean valores y no variables.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:17.