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

campo longtext repetido

Estas en el tema de campo longtext repetido en el foro de Mysql en Foros del Web. hola tengo una columna (longtext) en mi tabla en la cual tengo varios registros repetidos y quisiera borrarlos, para hacerlo con php se me haria ...
  #1 (permalink)  
Antiguo 27/12/2011, 22:32
 
Fecha de Ingreso: agosto-2010
Mensajes: 177
Antigüedad: 13 años, 8 meses
Puntos: 5
Pregunta campo longtext repetido

hola tengo una columna (longtext) en mi tabla en la cual tengo varios registros repetidos y quisiera borrarlos, para hacerlo con php se me haria un proceso eterno, quisiera saber si hay alguna consulta SQL que me sirva para borrar todas las repetidas...



Saludos...
  #2 (permalink)  
Antiguo 28/12/2011, 02:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: campo longtext repetido

Cita:
...para hacerlo con php se me haria un proceso eterno...
php no va hacer nada distinto a lo que puedas hacer con sql... es decir para que php te borre registros de la base de datos le tendras que mandar una query igual a la que puedas ejecutar directamente en el servidor....

Nos dices muy poco de tutabla, pero supongamos

tutabla
id
tucamporepetido
...

Para obtener los id con contenido repetido

Código MySQL:
Ver original
  1. SELECT id FROM tutabla
  2. WHERE tucamporepetido IN (SELECT tucamporepetido
  3. FROM tutabla
  4. GROUP BY tucamporepetido

si vas a borrarlos todos

Código MySQL:
Ver original
  1. DELETE FROM tutabla
  2. WHERE tuid IN (SELECT id FROM tutabla
  3. WHERE tucamporepetido IN (SELECT tucamporepetido
  4. FROM tutabla
  5. GROUP BY tucamporepetido
  6. HAVING Count(*)>1))

Si lo que quieres es conservar uno y no tienes mas campos que ese, antes de borrar haz

Código MySQL:
Ver original
  1. INSERT INTO unaTablaTemporal (tucamporepetido)
  2. SELECT tucamporepetido
  3. FROM tutabla
  4. GROUP BY tucamporepetido

Ahora en unaTablaTemporal tendrás una y solo una copia de esos contenidos...

Ya puedes borrarlos de tutabla.

Y luego

Código MySQL:
Ver original
  1. INSERT INTO tutabla (tucamporepetido) SELECT * FROM unaTablaTemporal

si hay mas campos la cosa se complica....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 03/01/2012, 11:36
 
Fecha de Ingreso: agosto-2010
Mensajes: 177
Antigüedad: 13 años, 8 meses
Puntos: 5
Respuesta: campo longtext repetido

Tengo mi PHP asi:


Cita:
<?php

include('config/config.php');
include('config/db_con.php');
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql = mysql_query("SELECT id FROM `like`
WHERE `like` IN (SELECT `like`
FROM `like`
GROUP BY `like`
HAVING Count(*)>1) LIMIT 0, 1") or die (mysql_error());


while($row=mysql_fetch_array($sql)){

$id=$row['id'];

echo $id;
}

?>

Y me da este error:

Cita:
Warning: mysql_query() [function.mysql-query]: Unable to save result set in /home/custus/public_html/kkk.php on line 111
Query execution was interrupted


Que estoy haciendo mal?


Gracias!

Etiquetas: php, registros, repetido, sql, tabla, campos
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 00:40.