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

no encuentro el error en esta consulta.....

Estas en el tema de no encuentro el error en esta consulta..... en el foro de Mysql en Foros del Web. Hola, intento crear un update en un periodo de tiempo pero no consigo encontrar porque me da error, la consulta la tengo asin: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 14/12/2011, 04:58
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
no encuentro el error en esta consulta.....

Hola, intento crear un update en un periodo de tiempo pero no consigo encontrar porque me da error, la consulta la tengo asin:

Código MySQL:
Ver original
  1. UPDATE tienda_online  SET agotado = 1 where (agotado = 2) AND (fecha < DATE_SUB(CURDATE(), INTERVAL 1 MINUTE))and id=22

no me ejecuta el intervalo me lo actualiza al instante, alguna ayuda de los expertos, saludos.

Última edición por pithon; 14/12/2011 a las 05:08
  #2 (permalink)  
Antiguo 14/12/2011, 06:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: no encuentro el error en esta consulta.....

Código MySQL:
Ver original
  1. UPDATE tienda_online *
  2. SET agotado = 1
  3.     (agotado = 2)
  4.     AND
  5.     (fecha < DATE_SUB(CURDATE(), INTERVAL 1 MINUTE))
  6.     AND id=22
Bueno, lo que le estás diciendo es que realice una actualización de estado de la columna agotado a 1, donde tenga el valor 2, el ID sea 22 y donde fecha sea el penultimo minuto del día de ayer...
Yo no le encuentro mucha lógica a la condición de la fecha.
¿Eso es lo que realmente quieres?

Cita:
crear un update en un periodo de tiempo
Exactamente, ¿a qué te refieres?
__________________
¿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 14/12/2011, 06:15
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: no encuentro el error en esta consulta.....

Hola gnzsoloyo, puse un minuto para probar, yo quiero actualizar el campo agotado una hora despues de la fecha, probe asin:

Código MySQL:
Ver original
  1. UPDATE tienda_online *
  2.     SET agotado = 1
  3.     WHERE
  4.         (agotado = 2)
  5.         AND
  6.         (fecha < DATE_ADD(CURDATE(), INTERVAL 60 MINUTE))
  7.         AND id=22

Esto es correcto?

podria hacer una consulta donde hiciera un update pasado un tiempo se actualice por ejemplo, hacer un update agotado=2 y otra consulta donde agotado pase a 1 una hora mas tarde, esto es posible con mysql?

saludos

saludos
  #4 (permalink)  
Antiguo 14/12/2011, 06:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: no encuentro el error en esta consulta.....

Pregunta:
¿La idea es que la actualización se ejecute X tiempo después de que la envías?
¿Es eso?
__________________
¿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 14/12/2011, 06:32
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: no encuentro el error en esta consulta.....

Hola gnzsoloyo, eso es la idea es hacer una actualizacion normal, y despues hacer otra actualizacion para volver al estado normal pasando un x tiempo, esto es posible con mysql?saludos.
  #6 (permalink)  
Antiguo 14/12/2011, 06:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: no encuentro el error en esta consulta.....

Eso no lo controla MySQL.
Las actualizaciones son instantáneas, y quedan consolidadas en el mismo momento, a menos que se esté trabajando con transactions.
Si lo que necesitas es ejecutar una sentencia pasado X tiempo tienes dos opciones: Un EVENT, que es fijo, o un batch a nivel sistema operativo, programado en el crontab.

De todos modos, ¿podrías explicarnos el escenario donde necesitas esto? Puede que haya alternativas, porque resulta poco entendible por qué necesitas hacer una doble atualización para retrotraer un cambio.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 14/12/2011, 06:44
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: no encuentro el error en esta consulta.....

hola gnzsoloyo, trata de una tienda online, pero tambien en la tienda online esta la posiblidad de poner productos que que quieran vender los usuarios, pero lo que pretendo es que el producto que pone el usuario dure un periodo de tiempo, necesito hacer el update por si quiere volver a poner su producto a la venta, como seria la manera correcta de hacerlo, saludos.
  #8 (permalink)  
Antiguo 14/12/2011, 06:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: no encuentro el error en esta consulta.....

Lo que te conviene alli es que la tabla tenga una columna donde se almacene la fecha de vencimiento de la oferta, y las consultas, al leer la tabla, recuperen sólo las que todavía están vigentes.
Así, si el usuario quiere reactivarla sólo tienes que cambiar esa fecha.
El hecho de tener fecha de limite de vigencia hace que no te tengas que preocupar por actualizar nada, simplemente vence por si misma.

¿Se entiende la idea?
Así es como trabajan esos sistemas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 14/12/2011, 07:01
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: no encuentro el error en esta consulta.....

gnzsoloyo no acabo de entender muy bien la parte de guardar las consultas, perdona pero el concepto no lo acabo de entender bien, un saludo.
  #10 (permalink)  
Antiguo 14/12/2011, 07:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: no encuentro el error en esta consulta.....

No comprendo bien a qué te refieres con tu duda...
¿Qué es exactamente o que no entiendes?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 14/12/2011, 07:11
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: no encuentro el error en esta consulta.....

que te refieres crear un campo para la fecha del vencimiento y otro campo para la consulta?perdona pero no acabo de entenderlo, si que comprendo la idea pero no el concepto, por ejemplo como seria la consulta para recuperar los vigentes, saludos.
  #12 (permalink)  
Antiguo 14/12/2011, 07:19
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: no encuentro el error en esta consulta.....

perdona gnzsoloyo, interprete mal tu texto, ahora si que lo entiendo, en vez de actualizar el producto juego actualizando las fechas de caducidad, osea que el producto siempre esta activado, ok gracias por darme la solucion y la manera correcta de hacerlo, saludos.
  #13 (permalink)  
Antiguo 14/12/2011, 07:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: no encuentro el error en esta consulta.....

NO.
La tabla donde guardas las ofertas debe tener un campo adicional con la fecha de vencimiento de la misma, supongamos que se llame "fecha_vencimiento", de tipo DATE, donde guardas la fecha de vencimiento de la oferta, al momento de guardar la oferta.
Luego, cuando consultas las ofertas lo que se hace es poner en el WHERE:
Código MySQL:
Ver original
  1.     ...
  2.     AND fecha_vencimiento < CURDATE()
Los tres puntos los pongo para indicar que allí irían el resto de las condiciones que quieres ponerle a la consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 14/12/2011, 07:31
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: no encuentro el error en esta consulta.....

si gnzsoloyo, ya lo entendi, muchas gracias por decirme la logica con la que trabajar para conseguir lo que quiero, ahora que lo dice un experto parece facil pero no cai por mil vueltas que le di, muchas gracias por tu colaboracion y saludos.
  #15 (permalink)  
Antiguo 14/12/2011, 08:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: no encuentro el error en esta consulta.....

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: encuentro
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:13.