sql >> Database teknologi >  >> RDS >> Mysql

SQL-forespørgsel, hvor feltet IKKE INDEHOLDER $x

Hvad er det for et felt? IN-operatoren kan ikke bruges med et enkelt felt, men er beregnet til at blive brugt i underforespørgsler eller med foruddefinerede lister:

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

Hvis du søger efter en streng, skal du gå efter LIKE-operatoren (men det vil være langsomt):

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

Hvis du begrænser det, så strengen du søger efter skal starte med den givne streng, kan den bruge indekser (hvis der er et indeks på det felt) og være rimelig hurtig:

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


  1. Hvordan beregner jeg en løbende total i SQL uden at bruge en markør?

  2. Oracle (Gamle?) Joins - Et værktøj/script til konvertering?

  3. MySQL hvordan man forbinder tabeller på to felter

  4. Kan ikke se MySQL BIT-feltværdien, når du bruger SELECT