Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta SQL em que o campo NÃO contém $x


Que tipo de campo é esse? O operador IN não pode ser usado com um único campo, mas deve ser usado em subconsultas ou com listas predefinidas:
-- subquery
SELECT a FROM x WHERE x.b NOT IN (SELECT b FROM y);
-- predefined list
SELECT a FROM x WHERE x.b NOT IN (1, 2, 3, 6);

Se você estiver pesquisando uma string, vá para o operador LIKE (mas isso será lento):
-- Finds all rows where a does not contain "text"
SELECT * FROM x WHERE x.a NOT LIKE '%text%';

Se você restringi-lo para que a string que você está procurando comece com a string fornecida, ela pode usar índices (se houver um índice nesse campo) e ser razoavelmente rápido:
-- Finds all rows where a does not start with "text"
SELECT * FROM x WHERE x.a NOT LIKE 'text%';