15
I’m having doubts about the difference and use of tags LIKE, IN and BETWEEN in Mysql.
When to use tags and example?
15
I’m having doubts about the difference and use of tags LIKE, IN and BETWEEN in Mysql.
When to use tags and example?
16
Clause / opearador LIKE
Clause / operator is used LIKE when you want to search a character, using coringa that is to say %, if you want to scan with characters that start with the word A the correct is to do as I will show below. First note the position of coringa % yeah, it makes a difference.
Here you will find all the records that contain the letter A in the word. In the first alternative only with the joker % and in the second %_caracter_%
SELECT * FROM tabela WHERE descricao LIKE "%A%"
SELECT * FROM tabela WHERE descricao LIKE "%_A_%"
Here you will find all the records that contain the letter A at the end of the word. In the first alternative only with the joker % and in the second %_caracter
SELECT * FROM tabela WHERE descricao LIKE "%A"
SELECT * FROM tabela WHERE descricao LIKE "%_A"
Here you will find all the records that contain the letter A at the beginning of the word. In the first alternative only with the joker % and in the second caracter_%
SELECT * FROM tabela WHERE descricao LIKE "A%"
SELECT * FROM tabela WHERE descricao LIKE "A_%"
Now let’s go to the clause BETWEEN
You must use the clause BETWEEN when you only want to catch a break from your SELECT, that is, you want to know the sales made between the day 10/11/2017 and 13/11/2017. After all the translation of BETWEEN would be Entre. I will indicate in the select below that I want to search the records between the day 10/11/2017 and 13/11/2017. Remembering that to seek an interval only 2 conditions should be indicated
Select * FROM tabela WHERE vendas BETWEEN 10/11/2017 AND 13/11/2017
Now let’s go to the clause IN
The clause IN is used when we want to query a table filtering the value of one of its fields, from a list of possibilities. That is, if you wish to give one SELECT in a table where you have N records but want to filter them for only what you think necessary. See, that below I will indicate that I want to get the records of the people who own the ID = 1,2,5,10 only.
SELECT * from pessoas WHERE id IN (1,2,5,10)
5
Examples in the rray response:
LIKE: is used to do partial searches in text type fields (varhcar text etc) using wildcards % _.
SELECT * FROM tabela
WHERE campo LIKE 'abc'
SELECT * FROM tabela
WHERE campo LIKE '%abc%'
IN: Compare a value against a fixed set or even with a subquery.
SELECT * FROM tabela
WHERE campo IN ('abc','def')
SELECT * FROM tabela
WHERE campo IN (10,20,30)
SELECT * FROM tabela
WHERE campo IN (SELECT campo FROM tabela
WHERE campo LIKE '%abc%')
BETWEEN: Compares a value between a range of exactly two values.
SELECT * FROM tabela
WHERE campo BETWEEN '01/01/2017' AND '01/10/2017'
SELECT * FROM tabela
WHERE campo BETWEEN 10 AND 20
3
LIKE: is used to do partial searches in text type fields (varhcar text etc) using wildcards % and _.
IN: Compare a value against a fixed set or even with a subquery.
BETWEEN: Compares a value between a range of exactly two values.
Related:
What’s the difference between SOME, IN and ANY?
Not IN or Not EXISTS which to use?
What is the real difference between the operator '=' and LIKE?
3
Between:
Definition, used to return records based on a range of values. Property for numeric type or date fields, e.g..:
SELECT * FROM Funcionario WHERE Admissao BETWEEN '2017-09-01' AND '2017-10-01'
Sqlfiddle - See example working
IN and Not IN:
Definition, Used to return records whose values meet or do not meet a certain list.
SELECT * FROM Funcionario WHERE Admissao IN ('2017-11-12', '2017-09-12')
SELECT * FROM Funcionario WHERE Admissao NOT IN ('2017-11-12', '2017-09-12')
Sqlfiddle - See the example with IN working | Sqlfiddle - example with NOT IN working
Like and Not Like:
Definition, used to return records that contain or do not contain the given character string. It uses the % to control the form of research.
Your search may vary in 3 ways:
Sqlfiddle - Values started with a certain character set.
SELECT * FROM Funcionario WHERE Pessoa like 'Cai%'
Sqlfiddle - Values ending with a certain character set.
SELECT * FROM Funcionario WHERE Pessoa like '%los'
Sqlfiddle - Values containing a certain character set.
SELECT * FROM Funcionario WHERE Pessoa like '%ai%'
Browser other questions tagged mysql sql
You are not signed in. Login or sign up in order to post.
It is worth remembering that
_is also a "joker" of the like Wildcard - corresponds to a character– Don't Panic
Hello @Everson, could edit the answer including this detail, I find very valid.
– Rafael Weber
I edited the reply @Rafaelweber, see if it was good and got clarity
– Victor