Hola,
Eso es porque AND tiene preferencia sobre OR, por lo que la consulta que estás haciendo es equivalente a esta:
Cuando seguramente tú querías poner esta (fíjate en los paréntesis):
Como en programación hay muchas maneras de hacer una misma cosa, te dejo otra opción para que le eches un vistazo:
Para esta consulta y la siguiente, la respuesta se llama SUBSTRING:
Me he inventado los nombres de la tabla y de los campos ya que para esta pregunta no pusiste tu intento:
De nada
Saludos!
Eso es porque AND tiene preferencia sobre OR, por lo que la consulta que estás haciendo es equivalente a esta:
Código
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
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
SELECT `nombre` FROM provincias WHERE LOWER(nombre) LIKE '_o%a';
Para esta consulta y la siguiente, la respuesta se llama SUBSTRING:
Código
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
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