elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  MySQL - Consultas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: MySQL - Consultas  (Leído 3,485 veces)
Saknoc

Desconectado Desconectado

Mensajes: 3


Ver Perfil
MySQL - Consultas
« en: 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.  :)


En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: MySQL - Consultas
« Respuesta #1 en: 13 Marzo 2016, 04:32 am »

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:
Código
  1. SELECT `nombre` FROM provincias
  2. 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
  1. SELECT `nombre` FROM provincias
  2. 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
  1. SELECT `nombre` FROM provincias
  2. 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:
Código
  1. SELECT `nombre` FROM provincias
  2. 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:
Código
  1. SELECT SUBSTRING(descripcion, 1, 11) FROM articulos
  2. WHERE `codigo` LIKE '_A%';

Gracias por vuestra atención.  :)

De nada :)

Saludos!


« Última modificación: 13 Marzo 2016, 04:36 am por xiruko » En línea

Saknoc

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: MySQL - Consultas
« Respuesta #2 en: 13 Marzo 2016, 11:10 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
  1. SELECT `nombre` FROM provincias
  2. 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
  1. SELECT `nombre` FROM provincias
  2. 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
  1. SELECT `nombre` FROM provincias
  2. WHERE LOWER(nombre) LIKE '_o%a';

Para esta consulta y la siguiente, la respuesta se llama SUBSTRING:
Código
  1. SELECT `nombre` FROM provincias
  2. 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
  1. SELECT SUBSTRING(descripcion, 1, 11) FROM articulos
  2. 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 :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Limite de consultas en MySQL desde PHP !!???
PHP
Diabliyo 9 5,027 Último mensaje 18 Diciembre 2006, 23:02 pm
por Diabliyo
Consultas php a mysql
PHP
teudiss 1 2,399 Último mensaje 16 Marzo 2010, 14:03 pm
por Castg!
mysql consultas encriptadas o no?
Bases de Datos
bomba1990 2 2,909 Último mensaje 8 Julio 2010, 05:26 am
por bomba1990
¿Mostrar consultas de MySQL en textbox en VB.NET?
.NET (C#, VB.NET, ASP)
Argentino Canejo 8 22,036 Último mensaje 19 Octubre 2012, 03:24 am
por Argentino Canejo
[Pregunta]: Consultas Mysql / PHP
Desarrollo Web
Leguim 2 1,713 Último mensaje 3 Febrero 2019, 01:19 am
por Leguim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines