Consulta MySQL - Cláusula WHERE
Amigos, a minha dúvida parece simples, mas possui uma pegadinha que não consigo resolver de jeito nenhum. Preciso de ajuda superior.
Eis a tabela de demonstração:
+-------------+----------------+-----------------+
| id | coluna1 | coluna2 |
+-------------+----------------+-----------------+
| 1 | 7 | 1 |
+-------------+----------------+-----------------+
| 2 | 7 | 2 |
+-------------+----------------+-----------------+
| 3 | 7 | 3 |
+-------------+----------------+-----------------+
| 4 | 7 | 4 |
+-------------+----------------+-----------------+
| 5 | 5 | 1 |
+-------------+----------------+-----------------+
| 6 | 5 | 2 |
+-------------+----------------+-----------------+
| 7 | 5 | 3 |
+-------------+----------------+-----------------+
| 8 | 5 | 4 |
+-------------+----------------+-----------------+
O que preciso é pegar TODOS OS REGISTROS, onde coluna1 seja diferente de 7 e coluna2 seja diferente de 2, no mesmo registro. Também preciso que coluna1 seja diferente de 5 e coluna2 seja diferente de 4, também no mesmo registro.
Ou seja, executando uma consulta que retorne os registros de ID:
1,3,4,5,6,7
A consulta não pode retornar o id 2 pois no mesmo registro coluna1 é igual a 7 e coluna2 é igual a 2.
Também não pode retornar o id 8, pois no mesmo registro coluna1 é igual a 5 e coluna2 é igual a 4.
Montei a seguinte consulta:
SELECT * FROM tabela WHERE (coluna1 <> 7 AND coluna2 <> 2) AND (coluna1 <> 5 AND coluna2 <> 4)
A consulta acima não retorna nenhum resultado, pois o computador entende:
coluna1 <> 7, então não retorna os registros de id 1 até 4, independente da coluna2.
Também vai limar os ids de 5 a 8, pois estamos pedindo coluna1 <> 5.
É aí que está a pegadinha.
Agradeço à todos que puderem ajudar.
Discussão (4)
Carregando comentários...