Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 9 da Aula 1 - Consultando os dados

Para executar esta pesquisa, utilizei o comando:

mysql> SELECT * FROM COMPRAS WHERE VALOR > '15,00' <= '35,00 ' AND observacoes like '%LANCHONETE%';

E obtive como resposta...

+-----+-------+------------+-------------------+----------+ | id | valor | data | observacoes | recebido | +-----+-------+------------+-------------------+----------+ | 109 | 54.98 | 2009-04-12 | LANCHONETE | 0 | | 110 | 12.34 | 2009-05-23 | LANCHONETE | 0 | | 111 | 78.65 | 2009-12-04 | LANCHONETE | 0 | | 133 | 32.09 | 2011-07-02 | LANCHONETE | 1 | | 135 | 98.7 | 2011-02-07 | LANCHONETE | 1 | | 138 | 23.78 | 2011-12-18 | LANCHONETE DO ZÉ | 1 | +-----+-------+------------+-------------------+----------+ 6 rows in set, 2 warnings (0.02 sec)

N conferência do exercício, notei que ao delimitar a palavra, está diferente, ou seja: ...'LANCHONETE%';

Teste com 'LANCHONETE%'; e obtive o mesmo resultado.

Frente ao exposto pergunto, tem alguma diferença? Qual a forma correta?

2 respostas

Boa noite,

Tem sim diferença e na verdade os dois jeitos estão corretos dependendo do resultado que você busca. Por exemplo, se tivermos três registros no campo observacoes: 'BAR E LANCHONETE', 'BAR E LANCHONETE DO JOAO', 'LANCHONETE DA MARIA'. A consulta ...LIKE '%LANCHONETE%' irá retornar todos os registros, pois todos possuem a palavra 'LANCHONETE'. ...LIKE 'LANCHONETE%', só ira retornar o registro 'LANCHONETE DA MARIA', pois é o único registro que começa com 'LANCHONETE' devido a posição do %. Pense que onde se encontra o % pode existir qualquer cadeia de caracteres ou nada.

Atenciosamente,

solução!

Fala ai Gabriel,

Suponhamos que temos um tabela cliente com um campo para nome, temos as seguintes possibilidades.

'%Matheus' - % no começo da palavra irá buscar todos os nomes que terminem com Matheus, ou seja, seu resultado será:

'Teste Matheus' 'Joao Matheus'

'Matheus%' - % no final da palavra irá buscar todos os nomes que começam com Matheus, ou seja, seu resultado será:

'Matheus Henrique' 'Matheus Rodrigo'

'%Matheus%' = % no começo e no fim irá buscar todos os nomes que contenham Matheus, ou seja, seu resultado será:

'Teste Matheus' 'Joao Matheus' 'Matheus Henrique' 'Matheus Rodrigo' 'Teste Matheus Alura' 'Caelum Matheus Aluno'

Minha resposta te ajudou ?