Cita de: xiruko en 13 Marzo 2016, 04:32 AM
Hola,
Eso es porque AND tiene preferencia sobre OR, por lo que la consulta que estás haciendo es equivalente a esta:Código (sql) [Seleccionar]SELECT `nombre` FROM provincias
WHERE `nombre` LIKE '_O%' OR (`nombre` LIKE '_o%' AND `nombre` LIKE '%A') OR `nombre` LIKE '%a';
Cuando seguramente tú querías poner esta (fíjate en los paréntesis):Código (sql) [Seleccionar]SELECT `nombre` FROM provincias
WHERE (`nombre` LIKE '_O%' OR `nombre` LIKE '_o%') AND (`nombre` LIKE '%A' OR `nombre` LIKE '%a');
Como en programación hay muchas maneras de hacer una misma cosa, te dejo otra opción para que le eches un vistazo:Código (sql) [Seleccionar]SELECT `nombre` FROM provincias
WHERE LOWER(nombre) LIKE '_o%a';
Para esta consulta y la siguiente, la respuesta se llama SUBSTRING:Código (sql) [Seleccionar]SELECT `nombre` FROM provincias
WHERE LOWER(nombre) LIKE '%ma%' OR SUBSTRING(codpro, 1, 1) = SUBSTRING(codpro, -1);
Me he inventado los nombres de la tabla y de los campos ya que para esta pregunta no pusiste tu intento:Código (sql) [Seleccionar]SELECT SUBSTRING(descripcion, 1, 11) FROM articulos
WHERE `codigo` LIKE '_A%';
De nada
Saludos!
Muchísimas gracias xiruco. Hay cosas que no venían en los apuntes porque quiere que nos busquemos también la vidilla por internet, pero no encontraba nada. La verdad que el substring lo he utilizado muchísimas veces en cadenas.
Gracias