13/12/2011, 06:46
|
Colaborador | | Fecha de Ingreso: marzo-2008 Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses Puntos: 574 | |
Respuesta: Conocer los ID de las filas borradas con un UPDATE con condición random Suponiendo que el update que propones funciona seria una forma de hacerlo...
...where floor(rand()*100)<50...
como no sabemos que debe ser igual a floor(rand()*100)<50... o menor a 50 ni cuantos vas a modificar....ni como Sql va a modificar nada...y quien te dice que floor(rand()*100) no te va a dar dos veces, o mas, el mismo valor... Si suponemos que quieres modificar n registros seleccionados aleatoriamente y luego listarlos...
Primero genera la lista aleatoria de identificadores.
(no es facil, puesto que aleatoriamente puedes elegir identificadores que no existan en la tabla)
Segundo usala para hacer el UPDATE
Tercero usala para listar los registgros modificados
A ver si te sirve esto
CREATE TABLE tutablatemporal (id);
INSERT INTO tutablatemporal (id) SELECT id FROM tuTabla ORDER BY RAND() LIMIT n;
(donde n es el numero de registros que quieres modificar)
UPDATE tabla set valor='---' where id IN (SELECT id FROM tutablatemporal);
SELECT * FROM tutabla where id IN (SELECT id FROM tutablatemporal);
DROP tutablatemporal;
Parece trabajo para el servidor pero solo trabaja sobre n registros....apoyandose ademas en el indice de la PK.
Con evitar UPDATE tabla set modificado=0 where modificado=1 ya te has ahorrado un monton de trabajo del servidor...imaginate que tabla tiene n*1.000.000 de registros....
__________________ Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
Última edición por quimfv; 13/12/2011 a las 07:28 |