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

MySQL ha devuelto un valor vacío (i.e., cero columnas).

Estas en el tema de MySQL ha devuelto un valor vacío (i.e., cero columnas). en el foro de Mysql en Foros del Web. Hola, mediante phpMyAdmin intento editar un registro de una tabla. Pero me devuelve "MySQL ha devuelto un valor vacío (i.e., cero columnas).". La consulta SQL ...
  #1 (permalink)  
Antiguo 23/09/2009, 07:24
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
MySQL ha devuelto un valor vacío (i.e., cero columnas).

Hola, mediante phpMyAdmin intento editar un registro de una tabla. Pero me devuelve "MySQL ha devuelto un valor vacío (i.e., cero columnas).".

La consulta SQL que genera phpMyAdmin es:

Código:
SELECT * 
FROM `gestion`.`movcli` 
WHERE CONVERT( `movcli`.`ci` 
USING utf8 ) = '35743126'
AND `movcli`.`fecha` = '2009-08-15'
AND `movcli`.`nrofac` =9401
AND CONCAT( `movcli`.`importe` ) =2490
AND `movcli`.`totctas` =3
AND CONCAT( `movcli`.`primera` ) =2500
AND `movcli`.`tipo` =1
AND CONCAT( `movcli`.`recargo` ) =0
AND `movcli`.`nrorec` =0
AND `movcli`.`fecanurec` = '1900-01-01'
AND `movcli`.`nroanurec` =0
AND CONCAT( `movcli`.`porrec` ) =0
AND CONVERT( `movcli`.`clave` 
USING utf8 ) = ''
AND `movcli`.`facdemora` =0
AND CONVERT( `movcli`.`local` 
USING utf8 ) = 'RG'
AND `movcli`.`totctasen` =0
AND CONCAT( `movcli`.`descn` ) = 50.1002004008016
AND `movcli`.`nrofacrec` =0
AND `movcli`.`moneda` =1
AND CONCAT( `movcli`.`dolarcompra` ) =0
AND CONCAT( `movcli`.`dolarventa` ) =0;
Lo más extraño es que con otros registros no me da problemas, es decir los puedo editar perfectamente.

Gracias desde ya por las respuestas.
Saludos
  #2 (permalink)  
Antiguo 23/09/2009, 07:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: MySQL ha devuelto un valor vacío (i.e., cero columnas).

Estás poniendo una enorme cantidad de condiciones de selección en el WHERE, y para poder devolverte un registro se tienen que cumplir TODAS. Si una no se cumple en forma absoluta, entonces no devoverá nada...
Por ejemplo, esto: CONCAT( `movcli`.`descn` ) = 50.1002004008016

Primero: CONCAT( `movcli`.`descn` ) no hace nada porque es un sólo campo, ¿No estarás confundiendo con CAST?
Segundo: si el valor contenido fuese 50.1002004008006, no te devolverá nada tampoco porque habría una diferencia en el doceavo decimal, y como dije, este WHERE requiere que todo sea TRUE.

¿Por qué tantas condiciones? ¿No es suficiente con usar una PK?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 23/09/2009, 07:53
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Respuesta: MySQL ha devuelto un valor vacío (i.e., cero columnas).

Gracias por responder.

En realidad no soy yo quien colocó la condición, sino que es el propio phpMyAdmin.

Saludos
  #4 (permalink)  
Antiguo 23/09/2009, 07:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: MySQL ha devuelto un valor vacío (i.e., cero columnas).

Entonces te conviene escribirla a mano, porque está poniendo condiciones en exceso...
Respecto del CONCAT, si está aplicado a campos numéricos es superfluo, porque lo que está intentando hacer es forzar una conversión a caracteres. ¿Para qué?, los valores numéricos no tienen tipo en UTF8.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/09/2009, 07:57
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Respuesta: MySQL ha devuelto un valor vacío (i.e., cero columnas).

Ok, lo probaré.

Gracias
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 14:03.