Menu fechado

Usando MySQL IN AND OR

MySQL IN??? MySQL OR??? MySQL AND???
Quando eu uso um e quando eu uso outro?

Vamos usar a tabela City para este tutorial:

+-------------+----------+------+-----+---------+----------------+
| Field       | Type     | Null | Key | Default | Extra          |
+-------------+----------+------+-----+---------+----------------+
| ID          | int(11)  | NO   | PRI | NULL    | auto_increment |
| Name        | char(35) | NO   |     |         |                |
| CountryCode | char(3)  | NO   | MUL |         |                |
| District    | char(20) | NO   |     |         |                |
| Population  | int(11)  | NO   |     | 0       |                |
+-------------+----------+------+-----+---------+----------------+



Vamos ver umas regras simples para uso:

AND – agente usa AND pra adicionar uma condição que precisa ser verdadeira:

SELECT * FROM City WHERE CountryCode = 'BRA' AND Population > 1000000 AND District LIKE 'São Paulo';

Essa consulta vai retornar as cidades com ContryCode BRA e População maior que 1000000 e District igual a São Paulo, as três condições precisam ser verdadeiras.

OR – agente usa OR pra adicionar uma condicao que ou uma ou outra tem que ser verdadeiras:

SELECT * FROM City WHERE Population > 1000000 OR District LIKE 'São Paulo';

Esta consulta vai retornar Cities que tem população maior que 1000000 ou tem district igual a São Paulo
IN – agente usa IN da mesma maneira que usamos OR, mas para a mesma coluna:

SELECT * FROM City WHERE CountryCode = 'USA' OR CountryCode = 'BRA' OR CountryCode = 'IRL';
SELECT * FROM City WHERE CountryCode IN ('USA', 'BRA', 'IRL');

As duas consultas vao retornar o mesmo resultado, cities que estão em USA, BRA ou IRL.

Gostou ? Ajude e Compartilhe!