Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/12/2010, 05:23
haga41
 
Fecha de Ingreso: junio-2008
Mensajes: 145
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con caracteres especiales como primer caracter de las búsquedas.

Muchas gracias por responder jurena, he intentado hacerlo como tu me has dicho o eso creo pero los resultados han sido algo extraños.

He probado a buscar películas que comiencen por un signo de interrogación "¿" y justo después vaya un número del 0 al 9 y me ha encontrado no sólo las películas cuyo título comenzaba por interrogación y el siguiente caracter era un número sino también películas que tienen un caracter no numérico después del "¿", es decir es como si la prioridad fuera el "¿" y me ignorase lo que sigue después. Esta es la forma en la que lo he escrito.

SELECT * FROM peliculas WHERE Titulo REGEXP '^\\¿[0-9]*' ";

Después he intentado que me encontrase las películas que comenzasen por "(" y un número pero me ha dado el siguiente error: "Got error 'parentheses not balanced' from regexp" y no se como arreglarlo. Estos es lo que he escrito:

SELECT * FROM peliculas WHERE Titulo REGEXP '^\\([0-9]*' ";

He intentado "equilibrar" los paréntesis poniendo el paréntesis de cierre después del corchete o después del asterisco pero me encuentra todos los archivos de la base de datos. Esto es lo que he intentado:

SELECT * FROM peliculas WHERE Titulo REGEXP '^\\([0-9])*' ";
SELECT * FROM peliculas WHERE Titulo REGEXP '^\\([0-9]*)' ";

Además el problema que hay es que yo no se en que parte del título de la película se va a cerrar el parentésis por ejemplo en "(500) días juntos" se cierrar justo después de los números pero en otros casos podría ocupar todo el título yo que se, la verdad es que parece bastante complicado.

Se que esto tiene que ver igual más con PHP pero ¿crees que sería posible introducir las variables con el valor de "¿", "(" o "¡" justo antes del [0-9] de manera limpia? Quizás de esa forma podríamos evitar que MySql tomara estos valores de la forma que los toma. Es decir ¿podría meter una variable $interrogante justo antes del [0-9]?

He intentado esto pero no me muestra ningún resultado:

SELECT * FROM peliculas WHERE Titulo REGEXP '^\\'".$parentesis."[0-9]*)' ";