Consulta SQL sobre URL incorrecta en ejercicio de libro

  • Autor Autor shirion
  • Fecha de inicio Fecha de inicio
S

shirion

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas a todos, estoy haciendo un ciclo superior y acabamos de empezar con sql, el caso es que ejemplos en el libro que están mal, los he podido solucionar todos, pero he llegado a uno que no sé por donde empezar, he probado de todo, leído en foros, web y demás, pero no encuentro una solución, el ejercicio es fácil, pero claro... lo dejo a continuación.

Datos de equipos cuya web sea del tipo Enlace eliminado siendo la extension de tres caracteres:
Y este es el código que me da:
SELECT * FROM equipo WHERE web REGEXP '^http://www\\.[^\\.]+\\..{3}';

Este código me devuelve todas las url menos una que no empieza por Enlace eliminado... el problema es que me muestran la url entera y no debería de salir entera.
http : // ejemplo . com/estoyanodeberiamostrarlo (he puesto los espacios para que se vea el ejemplo) en teoría solo debería mostrar hasta "com"
Gracias por la ayuda, espero poder aportar yo también al foro dentro de poco 🙂
 
Última edición:
Te muestra la url entera porque le haces un " SELECT * "
Prueba a ponerle "SELECT REGEXP ( tu expresion )"

Por otro lado.. te muestra las que empiezan por "http..." Porque en la expresion le has puesto el símbolo ^.. este simbolo significa " que empieze por"

Si no consigues sacarlo.. te la saco yo cuando esté delante del pc
Saludos.
 

Nada, mira que he probado combinaciones, pero no, te explico mejor el problema, tengo la base de datos liga y en la tabla equipo tengo que elegir web y que muestre hasta .com el libro esta mal, no solo ese ejemplo, si no todos o casi todos, te pongo lo que dice después del ejemplo:

En este último ejemplo mas complejo vemos la mayoría de los aspectos de expresiones regulares comentados. La expresión indica la necesidad de empezar con la cadena Enlace eliminado para después incluir un punto. En este caso debemos "escaparlo" o poner dos barras delante para que no se interprete como comodín. Después obligaremos a que haya cualquier secuencia de caracteres exceptuando el punto, de nuevo "escaparlo" y otra vez un punto. Finalmente la cadena debe terminar en 3 y solo 3 caracteres calesquiera.

Muchas por la ayuda, seguiré probando ^^
 
Última edición:
No sé si estás obligado a usar el REGEXP, sinó.. veo en Google que hay otras formas de hacerlo.
Por ejemplo, en este link usan el SUBSTRING_INDEX
Mysql query to extract domains from urls - Stack Overflow

Me temo que sí, es obligatorio hacerlo con REGEXP... No queda otra que seguir buscando e intentandolo, a ver si encuentro algo, muchas gracias por la ayuda ^^ si sigues interesado y encuentras algo, no dudes en escribirlo jeje por otro lado, si no consigo sacarlo, en cuanto me entere por el maestro lo pondré aquí para futuras dudas.
De nuevo, mil gracias 🙂