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

Delete mysql

Estas en el tema de Delete mysql en el foro de Mysql en Foros del Web. Buen dia. mi pregunta es la siguiente tengo el siguiente query: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original DELETE FROM tabla WHERE id_documento_referencia = '5' AND ...
  #1 (permalink)  
Antiguo 20/11/2013, 09:06
Avatar de herran1212  
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 89
Antigüedad: 10 años, 9 meses
Puntos: 3
Delete mysql

Buen dia.
mi pregunta es la siguiente tengo el siguiente query:
Código MySQL:
Ver original
  1. DELETE FROM tabla
  2. WHERE id_documento_referencia='5' AND (id_item='5' OR id_item='6')
  3. AND id_sucursal='14' AND id_empresa= 8
  4. LIMIT 3,5
el problema es el limit, ya que necesito q se haga un limit en cada OR en el WHERE, si alguien me pudiera ayudar os lo agradeceria

Última edición por gnzsoloyo; 20/11/2013 a las 09:32
  #2 (permalink)  
Antiguo 20/11/2013, 09:11
(Desactivado)
 
Fecha de Ingreso: noviembre-2013
Mensajes: 18
Antigüedad: 10 años, 5 meses
Puntos: 4
Respuesta: Delete mysql

No acabo de seguite... porque haces el limit 3,5 solo sirve para paginación.

y yo haría así...

Código MySQL:
Ver original
  1. DELETE FROM tabla
  2. WHERE id_documento_referencia='5' AND id_item in ('5', '6')
  3. AND id_sucursal='14' AND id_empresa= 8
  4. LIMIT 3,5

Por cierto un comentario si un campo es de tipo INT y le pones las ' ' estas casteando MySQL hace la conversión de String a integer y no es optimo (hablamos de milésimas de segundos)

Última edición por gnzsoloyo; 20/11/2013 a las 09:32
  #3 (permalink)  
Antiguo 20/11/2013, 09:30
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, 4 meses
Puntos: 2658
Respuesta: Delete mysql

Cita:
Iniciado por herran1212 Ver Mensaje
Buen dia.
mi pregunta es la siguiente tengo el siguiente query:
DELETE FROM tabla WHERE id_documento_referencia='5' AND (id_item='5' OR id_item='6') AND id_sucursal='14' AND id_empresa= 8 LIMIT 3,5
el problema es el limit, ya que necesito q se haga un limit en cada OR en el WHERE, si alguien me pudiera ayudar os lo agradeceria
¿Por qué necesitas ese LIMIT?

En ese caso, descartará los primeros tres que cumplan la condición y sólo borrará los siguientes 5 registros. En esas condicioens, si la consulta devolviese 10 registros, por ejemplo, quedarán siempre 5 registros cumpliendo las condiciones (del 4 al 8)...
¿Tienes claro eso, no?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 22/11/2013, 09:38
Avatar de herran1212  
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 89
Antigüedad: 10 años, 9 meses
Puntos: 3
Respuesta: Delete mysql

si claro totalmente, y eso es lo que necito, que se eliminen unos registros no todos, dependiendo de la cantidad de registros que el usuario quiera eliminar
  #5 (permalink)  
Antiguo 22/11/2013, 10:05
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, 4 meses
Puntos: 2658
Respuesta: Delete mysql

Lo siento, pero sigo sin entender por qué salteas unos registros, para luego eliminar otros entremedio.
¿Cuál es la lógica aplicada a esa selección? ¿¿En qué escenario puede requerirse un borrado con una selección tan extraña?
Mi pregunta apunta a entender por qué se hace un borrado tan extraño, que puede hacer que se eliminen registros nuevos, actualizados, mientras permanezcan los más antiguos, y por ende, obsoletos.
Tal vez te resulte demasiado teórica mi pregunta, pero es que yo me ocupo de analisis funcional y analisis de requerimientos de datos, y jamás he visto (hasta hoy) un caso como el que intentas crear.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 25/11/2013, 07:36
Avatar de herran1212  
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 89
Antigüedad: 10 años, 9 meses
Puntos: 3
Respuesta: Delete mysql

Es lo siguiente, cuando registro un item, y el usuario le da una cantidad a ese item, no se almacena la cantidad en un campo, sino que si por ejemplo el usuario agrego 5 sillas entonces se van a insertar 5 registros de silla, para depues que el usuario lo registro ingrese a cada item y digite la hoja de vida del mismo, como son vida util, garantia, codigo, etc.
ahora bien, tengo un documento donde puedo devolver esos items, pero es posible que no devuelva todos sino solo unos cuantos, es decir de las 5 sillas devolver solo 2, en ese caso tengo que eliminar dos registros de item no restar la cantidad, eso seria sencillo si solo fuese un item, ya que con un limit en el delete le puedo decir que llege hasta 2, pero el inconveniente llega cuando devuelvo 2 sillas, 3 mesas,1 impresora, ya que tienen el mismo proceso pero la cantidad a eliminar es diferente es decir en uno el limite es de 2, otro de 3 y otro de 1, mi duda es como podria hacerlo en un solo query, y en cuanto al limit de la consulta si me quedo mal y se me paso corregirlo al publicarlo asi que ese limit no le des importancia, de antemano muchisimas gracias si me pudieses ayudar

Etiquetas: delete, tabla
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 16:41.