Ver Mensaje Individual
  #15 (permalink)  
Antiguo 24/06/2009, 11:56
Frantopo
 
Fecha de Ingreso: agosto-2008
Mensajes: 184
Antigüedad: 15 años, 8 meses
Puntos: 2
De acuerdo Respuesta: Borrar desde el registro num X

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Esa es la forma más fácil. De hecho, puedes obtener el contenido del string con los valores separados por comas con la función GROUP_CONCAT(), aunque para usarlos directamente en SQL hay que hacerlo desde un Stored Procedures y con una sentencia preparada.
Código sql:
Ver original
  1. SELECT GROUP_CONCAT(id SEPARATOR ',') ids
  2. FROM tabla
  3. LIMIT 10;
Eso devuelve una cadena conteniendo los ID separados por comas de los 10 primeros registros.
Luego puedes usar la cadena devuelta (que se obtienen en un único registro) para armar la sentencia de borrado que te indicaron:
Código sql:
Ver original
  1. DELETE FROM tabla
  2. WHERE id IN(ids);
Quiero recalcarte dos cosas:
1) Si el ID es numérico, la cadena viene: "1,2,3,4,5", por lo que puedes usarla para crear la sentencia directamente. Pero si es alfanumérico debe tener un cambio en el string de SEPARATOR:
Código sql:
Ver original
  1. SELECT CONCAT('\'', GROUP_CONCAT(id SEPARATOR '\',\''), '\'') ids
  2. FROM tabla
  3. LIMIT 10;
ya que los valores alfanuméricos deben ir encerrados entre apóstrofes, y el SEPARATOR sólo determina los intermedios, pero no los de inicio y fin.
2) No se puede usar directamente el resultado de la consulta dentro de un stored procedure sin hacer uso de sentencias preparadas, porque no reconocerá el contenido de la variable. Es por una cuestión de tipos; para poder hacerlo debería usarse una variable de tipo BLOB o TEXT, y la sentencias no las soportan en MySQL.
Graciaaaasssssssssssssssss me sirvio de 1000 =)