Sammanfattning :i denna handledning kommer du att lära dig hur du använder SQLite WHERE
sats för att ange sökvillkoret för rader som returneras av frågan.
Introduktion till SQLite WHERE
klausul
WHERE
sats är en valfri sats i SELECT
påstående. Den visas efter FROM
klausul som följande uttalande:
SELECT
column_list
FROM
table
WHERE
search_condition;
Code language: SQL (Structured Query Language) (sql)
I det här exemplet lägger du till en WHERE
sats till SELECT
uttalande för att filtrera rader som returneras av frågan. När du utvärderar en SELECT
uttalande med en WHERE
sats, använder SQLite följande steg:
- Kontrollera först tabellen i
FROM
klausul. - För det andra, utvärdera villkoren i
WHERE
klausul för att få de rader som uppfyllde dessa villkor. - För det tredje, gör det slutliga resultatet baserat på raderna i föregående steg med kolumner i
SELECT
klausul.
Sökvillkoret i WHERE
har följande form:
left_expression COMPARISON_OPERATOR right_expression
Code language: SQL (Structured Query Language) (sql)
Du kan till exempel skapa ett sökvillkor enligt följande:
WHERE column_1 = 100;
WHERE column_2 IN (1,2,3);
WHERE column_3 LIKE 'An%';
WHERE column_4 BETWEEN 10 AND 20;
Code language: SQL (Structured Query Language) (sql)
Förutom SELECT
kan du använda WHERE
klausul i UPDATE
och DELETE
uttalanden.
SQLite jämförelseoperatorer
En jämförelseoperator testar om två uttryck är lika. Följande tabell illustrerar jämförelseoperatorerna som du kan använda för att konstruera uttryck:
Operator | Betydning |
---|---|
= | Lika med |
<> eller != | Inte lika med |
< | Mindre än |
> | Större än |
<= | Mindre än eller lika med |
>= | Större än eller lika med |
SQLite logiska operatorer
Med logiska operatorer kan du testa sanningen i vissa uttryck. En logisk operator returnerar 1, 0 eller ett NULL-värde.
Observera att SQLite inte tillhandahåller boolesk datatyp, därför betyder 1 SANT och 0 betyder FALSK.
Följande tabell illustrerar de logiska SQLite-operatorerna:
Operator | Betydning |
---|---|
ALLA | returerar 1 om alla uttryck är 1. |
OCH | returerar 1 om båda uttrycken är 1 och 0 om ett av uttrycken är 0. |
NÅGON | returerar 1 om någon av en uppsättning jämförelser är 1. |
MELLAN | returerar 1 om ett värde är inom ett intervall. |
FINNS | returerar 1 om en underfråga innehåller några rader. |
IN | returerar 1 om ett värde finns i en värdelista. |
GILLA | returerar 1 om ett värde matchar ett mönster |
INTE | vänder värdet på andra operatorer som INTE FINNS, INTE I, INTE MELLAN, etc. |
ELLER | returnerar sant om något uttryck är 1 |
SQLite WHERE
klausulexempel
Vi kommer att använda tracks
tabell i exempeldatabasen för att illustrera hur man använder WHERE
klausul.
Jämlikhetsoperatören (=
) är den mest använda operatorn. Till exempel använder följande fråga WHERE
klausul jämlikhetsoperatorn för att hitta alla spår i album-id 1:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1;
Code language: SQL (Structured Query Language) (sql)
Prova det
SQLite jämför värdena lagrade i AlbumId
kolumn med ett bokstavligt värde 1
för att testa om de är lika. Endast de rader som uppfyller villkoret returneras.
När du jämför två värden måste du se till att de är av samma datatyp. Du bör jämföra siffror med siffror, sträng med strängar, etc.
Om du jämför värden i olika datatyper, t.ex. en sträng med ett nummer, måste SQLite utföra implicita datatypkonverteringar, men i allmänhet bör du undvika att göra detta.
Du använder den logiska operatorn för att kombinera uttryck. Till exempel, för att få spår av album 1 som är längre än 200 000 millisekunder, använder du följande uttalande:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1
AND milliseconds > 250000;
Code language: SQL (Structured Query Language) (sql)
Prova det
Uttrycket använde två uttryck albumid = 1
och milliseconds > 250000
. Den använder AND
logisk operator för att kombinera dessa uttryck.
SQLite WHERE
sats med LIKE
operatörsexempel
Ibland kanske du inte kommer ihåg exakt vilken data du vill söka efter. I det här fallet utför du en inexakt sökning med LIKE
operatör.
Till exempel, för att hitta vilka spår som komponerats av Smith använder du LIKE
operatör enligt följande:
SELECT
name,
albumid,
composer
FROM
tracks
WHERE
composer LIKE '%Smith%'
ORDER BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Prova det
Du får låtar komponerade av R.A. Smith-Diesel, Adrian Smith, etc.
SQLite WHERE
sats med IN
operatörsexempel
IN
operatorn låter dig kontrollera om ett värde finns i en lista med en kommaseparerad lista med värden. Till exempel, för att hitta spår som har mediatyp-id 2 eller 3 använder du IN
operatör som visas i följande uttalande:
SELECT
name,
albumid,
mediatypeid
FROM
tracks
WHERE
mediatypeid IN (2, 3);
Code language: SQL (Structured Query Language) (sql)
Prova det
I den här handledningen har du lärt dig hur du använder SQLite WHERE
sats för att filtrera rader i den slutliga resultatuppsättningen med hjälp av jämförelse- och logiska operatorer.