Oi Rodrigo,
O problema está no uso incorreto do operador LIKE
com o caractere curinga %
na coluna instituicao
. O %
é usado para buscar padrões que contenham uma sequência de caracteres, e não para encontrar valores que terminem com uma sequência específica.
No seu primeiro exemplo, instituicao = 'da Rocha'
busca exatamente a string "da Rocha". Já no segundo exemplo, com instituicao = '%Rocha'
, você está buscando instituições que terminem com "Rocha", e não que sejam "da Rocha".
Para corrigir, você precisa usar o operador =
para buscar um valor exato, como no exemplo original do curso.
SELECT * FROM Treinamento
WHERE (curso LIKE 'O direito%' AND instituicao = 'da Rocha')
OR (curso LIKE 'O conforto%' AND instituicao = 'das Neves');
Caso você queira buscar instituições que contenham "Rocha" em qualquer parte do texto, você poderia usar:
SELECT * FROM Treinamento
WHERE (curso LIKE 'O direito%' AND instituicao LIKE '%Rocha%')
OR (curso LIKE 'O conforto%' AND instituicao LIKE '%Neves%');
👍 💪 Veja mais: Documentação do LIKE
Continue praticando e explorando as possibilidades do SQL! 🤔
Caso este post o tenha ajudado, por favor,
marcar como solucionado ☑️.
Bons Estudos! 🤓