Hola,
Una de las consultas es:
Nombre de las provincias cuya segunda letra es una "O" (bien mayúscula o minúscula) y cuya última letra es una "A" (bien mayúscula o minúscula.
Mi respuesta (que no me muestra en la consulta lo que me debería de mostrar) es:
SELECT nombre FROM provincias WHERE nombre LIKE ('_O%') OR nombre LIKE ('_o%') AND nombre LIKE ('%A') OR nombre LIKE ('%a');
Eso es porque AND tiene preferencia sobre OR, por lo que la consulta que estás haciendo es equivalente a esta:
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):
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:
SELECT `nombre` FROM provincias
WHERE LOWER(nombre) LIKE '_o%a';
Otra consulta que tengo que hacer y no me sale es:
Nombre de las provincias que contienen el texto "MA" (bien mayúsculas o minúsculas) o cuyo código comienza y termina por el mismo caracter.
Mi respuesta es:
SELECT nombre FROM provincias WHERE nombre LIKE ('%MA%') OR nombre LIKE ('%ma%') AND codpro LIKE ('_%') = ('%_');
La parte que dice que tiene que contener el texto "MA" creo que si lo tengo bien, pero lo de que comience y termine por el mismo caracter no me sale.
Para esta consulta y la siguiente, la respuesta se llama
SUBSTRING:
SELECT `nombre` FROM provincias
WHERE LOWER(nombre) LIKE '%ma%' OR SUBSTRING(codpro, 1, 1) = SUBSTRING(codpro, -1);
Y la última consulta que no me sale es:
Mostrar las 11 primeras letras de la descripción de los artículos cuyo código contenga una A en la segunda posición.
Me he inventado los nombres de la tabla y de los campos ya que para esta pregunta no pusiste tu intento:
SELECT SUBSTRING(descripcion, 1, 11) FROM articulos
WHERE `codigo` LIKE '_A%';
Gracias por vuestra atención.
De nada
Saludos!