31 - Búsqueda de patrones (like y not like) |
Trabajamos con la tabla "libros" de una librería.
Eliminamos la tabla, si existe.
Creamos la tabla con la siguiente estructura:
create table libros( codigo int unsigned auto_increment, titulo varchar(40), autor varchar(30), editorial varchar(15), precio decimal(5,2) unsigned, primary key(codigo) );
Ingresamos algunos registros:
insert into libros (titulo,autor,editorial,precio) values('El aleph','Borges','Planeta',15.50); insert into libros (titulo,autor,editorial,precio) values('Martin Fierro','Jose Hernandez','Emece',22.90); insert into libros (titulo,autor,editorial,precio) values('Antologia poetica','J.L. Borges','Planeta',39); insert into libros (titulo,autor,editorial,precio) values('Aprenda PHP','Mario Molina','Emece',19.50); insert into libros (titulo,autor,editorial,precio) values('Cervantes y el quijote','Bioy Casare- J.L. Borges','Paidos',35.40); insert into libros (titulo,autor,editorial,precio) values('Manual de PHP', 'J.C. Paez', 'Paidos',19); insert into libros (titulo,autor,editorial,precio) values('Harry Potter y la piedra filosofal','J.K. Rowling','Paidos',45.00); insert into libros (titulo,autor,editorial,precio) values('Harry Potter y la camara secreta','J.K. Rowling','Paidos',46.00); insert into libros (titulo,autor,editorial,precio) values('Alicia en el pais de las maravillas','Lewis Carroll','Paidos',36.00);
Recuperamos los libros cuyo autor sea igual a la cadena "Borges":
select * from libros where autor='Borges';
Nos devuelve 1 registro.
Recuperamos todos los registros cuyo autor contenga la cadena "Borges":
select * from libros where autor like '%Borges%';
El resultado nos devuelve 3 registros.
Para seleccionar todos los libros que comiencen con "A":
select * from libros where titulo like 'A%';
Para seleccionar todos los libros que no comiencen con "A":
select * from libros where titulo not like 'A%';
Queremos los libros de "Lewis Carroll" y no recordamos si se escribe "Carroll" o "Carrolt", entonces tipeamos:
select * from libros where autor like '%Carrol_';
Buscamos todos los libros de "Harry Potter":
select * from libros where titulo like '%Harry Potter%';
Todos los libros sobre "PHP":
select * from libros where titulo like '%PHP%';