Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Saknoc

#1
Bases de Datos / Re: MySQL - Consultas
13 Marzo 2016, 11:10 AM
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 :)
#2
Bases de Datos / MySQL - Consultas
13 Marzo 2016, 02:48 AM
Buenas, tengo que hacer varios ejercicios para clase de bases de datos y hay un par de cosillas que no me salen y no encuentro por internet.

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');

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.

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.

No sé que he de poner para que salgan las 11 primeras letras.

Gracias por vuestra atención.  :)
#3
Yo utilizo eclipse para java.