SQL WHERE IN – förklaras med exempel

Är du trött på att manuellt filtrera data i din databas och letar efter ett mer effektivt sätt att filtrera data med flera värden? SQL WHERE IN kan vara lösningen du behöver!

Om du arbetar med SQL-databaser har du förmodligen stött på operatorn WHERE IN. Den här operatorn används för att ange flera värden i en WHERE-sats, så att du kan filtrera dina data mer exakt.

Med den här operatorn kan du ange en lista med värden som ska matchas mot en kolumn i tabellen. Den här listan kan hårdkodas eller genereras av en underfråga, vilket ger dig mycket flexibilitet i hur du filtrerar dina data.

SQL WHERE IN – förklaras med exempel

Du kan till exempel använda IN-operatören för att hitta alla kunder från en specifik lista med städer eller för att filtrera resultat baserat på en uppsättning produkt-ID:n.

En av fördelarna med att använda WHERE IN-operatören är att den kan göra dina frågor mer effektiva. Genom att använda en lista med värden istället för flera ELLER-villkor kan du minska mängden bearbetning som behöver göras av databasen.

Detta kan vara särskilt viktigt när man arbetar med stora datamängder eller komplexa frågor, där även små optimeringar kan göra stor skillnad i prestanda.

Innehållsförteckning

Vad är SQL WHERE IN-klausul?

SQL WHERE IN-satsen används för att filtrera data baserat på en lista med värden. Det låter dig specificera flera värden i en WHERE-sats med en stenografi för flera OR-villkor. Syntaxen för WHERE IN-satsen för SQL Server , PostgreSQL, MYSQL och Oracle är följande:

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1, value2, ...); 

Om vi ​​överväger ovanstående SELECT-sats, låter WHERE IN-satsen dig hämta data från en tabell där den angivna kolumnen matchar något av värdena i listan. Det är en användbar syntax för att filtrera data när du har en specifik uppsättning värden att söka efter.

Hur fungerar SQL WHERE IN-klausul?

Klausulen fungerar genom att den angivna kolumnen jämförs med varje värde i listan. Om kolumnen matchar något av värdena i listan ingår raden i resultatuppsättningen.

Låt oss säga att du har en tabell med namnet "kunder" som består av tre kolumner: "kund_id", "kundnamn" och "land". Du vill hämta alla kunder från USA, Kanada och Mexiko. Följande fråga visar dig hur WHERE IN-satsen används: SELECT customer_id, customer_name, country FROM customers WHERE country IN ('USA','Kanada','Mexico');

Exempel på SQL WHERE IN-klausul

Om du vill filtrera resultat baserat på en lista med möjliga värden kan du använda SQL WHERE IN-satsen. Den här satsen ger ett enkelt sätt att välja rader där en viss kolumn matchar ett av en uppsättning värden.

Här är fem exempel på hur klausulen kan användas:

  1. Använda SQL WHERE IN-sats med ett enda värde

Låt oss säga att du vill markera alla rader i en tabell där statuskolumnen är inställd på "publicerad". Du kan göra detta med följande SQL-sats:

SELECT * 
FROM my_table 
WHERE status IN ('published');

Detta kommer att returnera alla rader där statuskolumnen är inställd på "publicerad".

  1. Använder SQL WHERE IN-sats med flera värden

Låt oss nu säga att du vill välja alla rader där statuskolumnen är inställd på antingen "publicerad" eller "utkast". Du kan använda följande SQL-sats:

SELECT * 
FROM my_table 
WHERE status IN ('published', 'draft');

Detta kommer att returnera alla rader där statuskolumnen är inställd på "publicerad" eller "utkast". Du kan också lägga till så många värden du vill, separerade med kommatecken.

  1. Använder SQL WHERE IN-sats med Delete Statement

Anta att du har en tabell som heter "kunder" med följande data:

SQL WHERE IN – förklaras med exempel

För att radera rader från den här tabellen baserat på flera värden i kolumnen "City", kan SQL WHERE IN-satsen användas med en DELETE-sats, som visas i följande fråga:

DELETE FROM customers
WHERE City IN ('New York', 'Chicago', 'Miami');

Detta uttalande kommer att radera alla rader från "kunder"-tabellen där kolumnnamnen "Stad" matchar något av värdena i listan, dvs. "New York", "Chicago", "Miami". I exemplet ovan kommer den att ta bort den första, tredje och femte raden från tabellen.

Observera att när du använder WHERE IN-satsen med en DELETE-sats bör du vara mycket försiktig så att du undviker misstag genom att se till att du raderar rätt data. Det är bäst att testa din fråga på en liten delmängd av data innan du kör den på hela din databas.

  1. Använda WHERE IN-operatorn och SQL WHERE-satsen för att filtrera data baserat på numeriska värden

SELECT *
FROM customers
WHERE age IN (25, 30, 35)
AND city = 'London';

Den här frågan returnerar alla rader från "kunder"-tabellen där ålderskolumnen innehåller de numeriska värdena 25, 30 eller 35, och stadskolumnen innehåller värdet "London".

Observera att WHERE IN-operatorn är en logisk operator som bara låter dig ange flera värden för en enda kolumn. SELECT-satsen används för att hämta data från en tabell, och WHERE-satsen används för att filtrera data baserat på specifika villkor.

I det här exemplet returnerar frågan rader från "kunder"-tabellen där ålderskolumnen matchar ett av de angivna numeriska värdena och stadskolumnen matchar värdet "London". Kolumnnamnen som används i den här frågan är "ålder" och "stad", och tabellen som frågas är "kunder".

  1. Använd WHERE IN med SELECT-satsen och IN-operatorn.

SELECT *
FROM orders
WHERE customer_id IN (
    SELECT customer_id
    FROM customers
    WHERE country = 'USA'
);

I det här exemplet använder vi en underfråga för att hämta alla kund-ID:n från tabellen "kunder" där landskolumnen innehåller värdet "USA". Vi använder sedan WHERE IN-operatören för att filtrera "order"-tabellen baserat på dessa kund-ID:n.

Denna fråga returnerar alla rader från ordertabellen där kund_id-kolumnen matchar ett av kund-ID:n som returneras av underfrågan.

Kom ihåg att WHERE IN-operatorn är en jämförelseoperator som låter dig jämföra en kolumn med en lista med värden. I det här fallet jämför vi kolumnen kund_id med en lista över kund-ID:n som returneras av underfrågan.

Genom att använda den här operatorn och en underfråga kan du filtrera data baserat på specifika kriterier och bara hämta den data som uppfyller dina behov.

2 stora fördelar med att använda SQL WHERE IN-klausul?

  1. Förbättrad frågeprestanda

Klausulen erbjuder en av de största fördelarna när det gäller frågeprestanda. När du filtrerar data baserat på flera värden kan användningen av satsen vara mycket effektivare och snabbare än att skriva flera WHERE-satser med OR-operatorer. Detta beror på att databasmotorn kan optimera frågeexekveringsplanen för att effektivt hämta nödvändig data.

Tänk till exempel på följande SQL- frågor med tabellen "kunder", där vi försöker identifiera kundinformationen baserat på deras länder.

SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers WHERE country='USA' 
			OR country='Canada' 
			OR country='Mexico' ;

SQL WHERE IN – förklaras med exempel

 SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers 
WHERE country IN ('USA', 'Canada', 'Mexico'); 

SQL WHERE IN – förklaras med exempel

Som framgår av exemplet ovan kan användning av klausulen resultera i en betydande förbättring av frågeprestanda och spara mer tid. Det är lättare att välja alla länder på en gång snarare än att välja land efter land med hjälp av OR-operatorn i en mycket större datauppsättning.

  1. Förenklad frågeskrivning

En annan stor fördel med att använda SQ L WHERE IN-satsen är att den kan förenkla processen att skriva komplexa frågor. När du behöver filtrera data baserat på flera värden kan det snabbt bli krångligt och svårt att hantera flera WHERE-satser med OR-operatorer.

Genom att använda klausulen kan du ange alla värden du vill filtrera i ett enda uttalande, vilket gör dina frågor lättare att läsa och underhålla. Detta kan vara särskilt användbart när du arbetar med stora datamängder eller när du behöver skriva komplexa frågor med flera villkor.

Tänk till exempel på följande SQL-fråga:

SELECT *
FROM products 
WHERE category='Electronics' AND (brand='Apple' OR brand='Samsung' OR brand='Sony') 
SELECT *
FROM products 
WHERE category='Electronics' AND brand IN ('Apple', 'Samsung', 'Sony') 

I båda frågorna från exemplet ovan returnerar frågan alla "elektronik"-produkter från Apple, Samsung och Sony.

Men att använda WHERE IN-satsen som den ses i den senare frågan kan förenkla processen med att använda komplexa frågor och göra dem lättare att läsa och förstå.

Dessutom hjälper det också till att undvika fel och gör det mindre tidskrävande.

Vårt sista ord

Grattis! Du är nu medveten om hur du använder SQL WHERE IN-satsen för att filtrera data baserat på en lista med värden. Låt oss utvärdera vad vi har lärt oss:

Genom att använda WHERE IN kan du förenkla en rad SQL-frågor och skapa dem för att hämta en mer effektivt skriven utdata.

Kom ihåg att WHERE IN är en förkortning för flera OR-villkor, så det kan ersätta långa listor med OR-satser. Dessutom kan klausulen användas med underfrågor, vilket gör att du kan filtrera data baserat på resultaten av en annan fråga.

När du använder WHERE IN är det viktigt att ta hänsyn till datatyperna för de värden du jämför. Om datatyperna inte stämmer överens kan du behöva använda typkonverteringsfunktioner för att säkerställa en korrekt jämförelse.

Sammantaget är SQL WHERE IN-satsen en kraftfull men ändå grundläggande syntax för att filtrera data i SQL-frågor. Genom att behärska den här klausulen kan du förbättra prestanda och läsbarhet för din SQL-kod, vilket gör det lättare att arbeta med och underhålla på lång sikt.


Vad är Power Query & M Language: En detaljerad översikt

Vad är Power Query & M Language: En detaljerad översikt

Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.

Skapa en paginerad rapport: Lägga till texter och bilder

Skapa en paginerad rapport: Lägga till texter och bilder

Lär dig hur du skapar en sidnumrerad rapport, lägger till texter och bilder och sedan exporterar din rapport till olika dokumentformat.

SharePoint Automate-funktionen | En introduktion

SharePoint Automate-funktionen | En introduktion

Lär dig hur du använder SharePoint-automatiseringsfunktionen för att skapa arbetsflöden och hjälpa dig att mikrohantera SharePoint-användare, bibliotek och listor.

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!

Löpande summor i LuckyTemplates med DAX

Löpande summor i LuckyTemplates med DAX

Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.

LuckyTemplates Slope Chart: En översikt

LuckyTemplates Slope Chart: En översikt

Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.

LuckyTemplates färgteman för enhetliga visualiseringar

LuckyTemplates färgteman för enhetliga visualiseringar

Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.