OR -operatorn kan optimera din sökning efter poster genom att begränsa re­sul­ta­ten till de som uppfyller minst ett av dina villkor. Du kan kombinera den med andra logiska ope­ra­to­rer som AND och NOT för att påskynda och förbättra komplexa sökningar.

Vad är SQL OR?

SQL:s AND, NOT och OR är några av de vik­ti­gas­te SQL-ope­ra­to­rer­na för att söka efter relevant in­for­ma­tion. Medan AND hittar data som uppfyller två eller flera villkor och NOT de­fi­ni­e­rar kriterier som ska utelämnas från re­sul­ta­ten, möjliggör OR mer flexibla sökningar. Det låter dig definiera flera sök­kri­te­ri­er, varav minst ett måste uppfyllas av re­sul­ta­ten. Fördelen är att du kan få relevanta resultat som inte nöd­vän­digt­vis uppfyller alla angivna kriterier.

Eftersom SQL OR används för att formulera sök­kri­te­ri­er används det ofta till­sam­mans med SELECT och WHERE. SELECT spe­ci­fi­ce­rar de aktuella posterna och ko­lum­ner­na och WHERE spe­ci­fi­ce­rar sök­kri­te­ri­er­na. För att göra din sökfråga ännu mer precis kan du kombinera OR med andra logiska ope­ra­to­rer som AND och NOT eller jäm­fö­rel­se­o­pe­ra­to­rer som =.

Vad är skill­na­den mellan SQL OR, AND och NOT?

Här är skill­na­der­na mellan SQL OR, AND och NOT:

SQL OR SQL AND SQL NOT
Filtrerar poster som uppfyller minst ett av villkoren Filtrerar data som uppfyller alla villkor Utelämnar in­for­ma­tion som inte uppfyller ett villkor
Utvidgar sökningen med annan in­for­ma­tion Begränsar sökningen till en kom­bi­na­tion av villkor som båda är uppfyllda Utelämnar ir­re­le­vant in­for­ma­tion med hjälp av kriterier för ute­slut­ning
Tips

Ingen er­fa­ren­het av SQL? Inga problem! Vår in­tro­duk­tion till SQL med exempel ger dig en snabbkurs i grunderna.

Vad är syntaxen för SQL OR?

Den grund­läg­gan­de syntaxen för OR ser ut som följer:

SELECT  *
FROM  Table
WHERE  condition1  OR  condition2  OR …
sql

Den använder följande pa­ra­met­rar:

  • SELECT: Väljer de kolumner du vill hämta data från med hjälp av primära och främmande nycklar. Du kan använda en asterisk * för att välja alla kolumner.
  • FROM: Anger vilken tabell du vill söka i.
  • WHERE: De­fi­ni­e­rar sökvill­kor med hjälp av ope­ra­to­rer och andra pa­ra­met­rar.
  • OR: Logisk operator som används till­sam­mans med WHERE för att definiera sök­kri­te­ri­er.

Du kan också kombinera OR med NOT och AND i din sökning för att yt­ter­li­ga­re begränsa sökningen.

SQL OR i kom­bi­na­tion med AND

I det här exemplet filtrerar WHERE-satsen efter resultat där både villkor 1 och minst ett av villkoren 2 eller 3 är sanna.

SELECT  *
FROM  Table
WHERE  condition1 AND (condition2 OR condition3)
sql

SQL OR i kom­bi­na­tion med SQL NOT

Du kan kombinera SQL OR med NOT för att utesluta data som uppfyller minst ett av de angivna villkoren.

SELECT  *
FROM  Table
WHERE  NOT  (condition1  OR  condition2)
sql

Vad kan SQL OR användas till?

Du kan använda OR -operatorn för att söka i komplexa da­ta­mäng­der baserat på flera kriterier. Här är några an­vänd­nings­fall:

  • Fil­tre­ring av kund-, order- och pro­dukt­da­ta baserat på kom­bi­ne­ra­de sök­kri­te­ri­er som pro­dukt­ka­te­go­ri­er, pro­dukte­gen­ska­per eller order- och re­kla­ma­tions­da­tum
  • Söka efter företag i vissa branscher eller regioner
  • Filtrera miss­tänk­ta eller ogiltiga trans­ak­tio­ner med hjälp av flera villkor
  • Söka efter in­for­ma­tion om anställda från en specifik avdelning eller ett specifikt team
  • Hämta sökande som inte har en examen eller ar­bets­livs­er­fa­ren­het

Exempel på SQL OR

Det finns otaliga an­vänd­nings­om­rå­den för operatorn OR när den kom­bi­ne­ras med WHERE, andra SQL-ope­ra­to­rer och andra SQL-funk­tio­ner. Nedan tittar vi på tre exempel så att du får en bättre upp­fatt­ning om hur OR fungerar.

Söka efter order från vissa ka­te­go­ri­er

Anta att du vill söka i en kund­ta­bell efter personer som har beställt produkter från endera eller båda ka­te­go­ri­er­na “Elekt­ro­nik” och “Hår”. Re­sul­ta­ten kommer endast att inkludera poster som uppfyller minst ett av de två villkoren. Vi använder jäm­fö­rel­se­o­pe­ra­torn = för att ange ka­te­go­ri­er­na.

Syntaxen för detta ser ut som följer:

SELECT  *
FROM  Customers
WHERE  (Category  =  'Electronics'  OR  Category =  'Hair')
sql

Fil­tre­ring av sökande

I det här exemplet finns en tabell som heter ”Sökande”. Vi vill hitta de personer i tabellen som har en examen i elektro­tek­nik eller IT och minst tre års ar­bet­ser­fa­ren­het. För att göra detta kom­bi­ne­rar vi OR och AND. Sökningen ser ut som följer:

SELECT  *
FROM  Applicants
WHERE  (Degree  =  'Electrical engineering'  OR  Degree  =  'IT')
AND (Experience  >=  3)
sql

Sökning baserad på region

I vårt sista exempel vill vi söka efter kunder från Frankrike eller Tyskland i en tabell som heter “Kunder”. Syntaxen för det ser ut som följer:

SELECT  *
FROM  Customers
WHERE  Country  =  'France'  OR   Country  =  'Germany'
sql

Finns det al­ter­na­tiv till SQL OR?

Operatorn OR erbjuder ett enkelt och snabbt sätt att söka utifrån flera villkor. Dessa SQL-ope­ra­to­rer har ett liknande syfte:

  • CASE: SQL:s CASE-uttryck kan också användas med WHERE, THEN och ELSE för att kon­trol­le­ra villkor och begränsa komplexa analyser till relevanta resultat. Det ut­vär­de­ras med hjälp av ett “IF-THEN-ELSE”-uttryck och går igenom villkoren från botten till toppen. Analysen avbryts när ett av villkoren är uppfyllt.
  • IN: Ope­ra­tö­ren IN kan användas i en WHERE klausul för att undersöka poster. Du kan definiera värden eller strängar med IN och sedan söka efter match­ning­ar i tabeller eller kolumner.
  • EXISTS: SQL:s EXISTS kan användas i en tabell för att kon­trol­le­ra om minst en post från en annan tabell matchar den första tabellen. Om det finns minst en matchning läggs re­sul­ta­tet till i mål­ta­bel­len. Denna operator är endast användbar om du arbetar med två re­la­te­ra­de tabeller.
Gå till huvudmeny