Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/07/2012, 19:12
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Mover archivos y actualizar ruta reeplazando con expresiones regulares

Bueno, creo que no se terminó de entender mi propuesta, pero la idea es que si puedes detectar aquellas rutas almacenadas tales que eliminando la dirección de la carpeta raíz, no contengan más nombres de carpetas, tendrás el listado de archivos que sólo están en la raíz.
Mi planteo apuntaba a saber si la dirección de la raíz está contenida en las rutas almacenadas, porque si es así, la consulta (tomando tu ejemplo de "/raiz/") sería mas o menos así:
Código MySQL:
Ver original
  1. FROM archivos
  2. WHERE INSTR(MID(ruta, 7, LENGTH(ruta)-6), '/')=0;
Esto devuelve todos los registros donde la ruta almacenada, eliminando "/raiz/", no contenga ninguna barra (caracter típico de carpeta).
En cambio, si la ruta almacenada no contiene la cadena "/raiz/", sino sólo el nombre de carpeta+archivo, como por ejemplo: "carpeta/archivocualquiera.jpg", o si está en la raíz: "archivocualquiera.jpg), la consulta sería:
Código MySQL:
Ver original
  1. FROM archivos
  2. WHERE INSTR(ruta, '/')=0;

Lo importante es determinar qué partes comunes tienen las cadenas de las rutas en ambos casos, y eliminar esa usando la función adecuada.

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