sql >> Databáze >  >> RDS >> Mysql

Dotaz SQL, kde pole NEOBSAHUJE $x

Co je to za obor? Operátor IN nelze použít s jedním polem, ale je určen k použití v poddotazech nebo s předdefinovanými seznamy:

-- 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);

Pokud hledáte řetězec, přejděte na operátor LIKE (ale bude to pomalé):

-- Finds all rows where a does not contain "text"
SELECT * FROM x WHERE x.a NOT LIKE '%text%';

Pokud jej omezíte tak, že hledaný řetězec musí začínat daným řetězcem, může používat indexy (pokud je v tomto poli index) a být přiměřeně rychlý:

-- Finds all rows where a does not start with "text"
SELECT * FROM x WHERE x.a NOT LIKE 'text%';


  1. Proč je připojení k serveru MySQL tak pomalé?

  2. Co je opakem GROUP_CONCAT v MySQL?

  3. Zabití dotazu MySQL během provádění pomocí PHP a AJAX

  4. Přidejte jedinečné omezení založené na hodnotě pole