sql >> Databasteknik >  >> RDS >> Mysql

SQL-fråga där fältet INTE innehåller $x

Vad är det här för fält? IN-operatorn kan inte användas med ett enda fält, men är avsedd att användas i underfrågor eller med fördefinierade listor:

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

Om du söker efter en sträng, välj LIKE-operatorn (men det kommer att gå långsamt):

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

Om du begränsar det så att strängen du söker efter måste börja med den givna strängen, kan den använda index (om det finns ett index på det fältet) och vara ganska snabb:

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


  1. Hur justerar man skärminställningar för mysql-kommandoraden?

  2. Hur importerar man en enorm CSV-fil med 200,00 rader till MySQL (asynkron och snabb)?

  3. Hur får man antalet element i en JSON-array lagrad som CLOB med Oracle 12c?

  4. Hur kan jag ställa in en storleksgräns för en int-datatyp i PostgreSQL 9.5