SQL WHERE IN – Vysvětleno s příklady

Nebaví vás ruční filtrování dat v databázi a hledáte efektivnější způsob filtrování dat s více hodnotami? Řešením, které potřebujete, může být SQL WHERE IN!

Pokud pracujete s SQL databázemi, pravděpodobně jste se setkali s operátorem WHERE IN. Tento operátor se používá k zadání více hodnot v klauzuli WHERE, což vám umožňuje přesněji filtrovat vaše data.

Pomocí tohoto operátoru můžete zadat seznam hodnot, které mají odpovídat sloupci v tabulce. Tento seznam může být pevně zakódován nebo vygenerován dílčím dotazem, což vám poskytuje velkou flexibilitu ve způsobu filtrování dat.

SQL WHERE IN – Vysvětleno s příklady

Operátor IN můžete například použít k vyhledání všech zákazníků z konkrétního seznamu měst nebo k filtrování výsledků na základě sady ID produktů.

Jednou z výhod používání operátoru WHERE IN je, že může zefektivnit vaše dotazy. Použitím seznamu hodnot namísto více podmínek NEBO můžete snížit množství zpracování, které musí databáze provést.

To může být důležité zejména při práci s velkými datovými sadami nebo složitými dotazy, kde i malé optimalizace mohou znamenat velký rozdíl ve výkonu.

Obsah

Co je klauzule SQL WHERE IN?

Klauzule SQL WHERE IN se používá k filtrování dat na základě seznamu hodnot. Umožňuje zadat více hodnot v klauzuli WHERE pomocí zkratky pro více podmínek NEBO. Syntaxe klauzule WHERE IN pro SQL Server , PostgreSQL, MYSQL a Oracle je následující:

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

Pokud vezmeme v úvahu výše uvedený příkaz SELECT, klauzule WHERE IN vám umožní načíst data z tabulky, kde zadaný sloupec odpovídá libovolné hodnotě v seznamu. Je to užitečná syntaxe pro filtrování dat, když máte hledat konkrétní sadu hodnot.

Jak funguje klauzule SQL WHERE IN?

Klauzule funguje tak, že porovnává zadaný sloupec s každou hodnotou v seznamu. Pokud sloupec odpovídá některé z hodnot v seznamu, je řádek zahrnut do sady výsledků.

Řekněme, že máte tabulku s názvem „customers“, která se skládá ze tří sloupců: „customer_id“, „customer_name“ a „country“. Chcete získat všechny zákazníky z USA, Kanady a Mexika. Následující dotaz vám ukáže, jak se používá klauzule WHERE IN: SELECT customer_id, customer_name, country FROM customers WHERE country IN ('USA','Kanada','Mexiko');

Příklady SQL WHERE IN Klauzule

Pokud chcete filtrovat výsledky na základě seznamu možných hodnot, můžete použít klauzuli SQL WHERE IN. Tato klauzule poskytuje snadný způsob výběru řádků, kde určitý sloupec odpovídá jedné ze sady hodnot.

Zde je pět příkladů, jak lze klauzuli použít:

  1. Použití klauzule SQL WHERE IN s jednou hodnotou

Řekněme, že chcete vybrat všechny řádky v tabulce, kde je sloupec stavu nastaven na „publikováno“. To lze provést pomocí následujícího příkazu SQL:

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

Tím se vrátí všechny řádky, kde je sloupec stavu nastaven na „publikováno“.

  1. Použití klauzule SQL WHERE IN s více hodnotami

Nyní řekněme, že chcete vybrat všechny řádky, kde je sloupec stavu nastaven na „publikováno“ nebo „koncept“. Můžete použít následující příkaz SQL:

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

Tím se vrátí všechny řádky, kde je sloupec stavu nastaven na „publikováno“ nebo „koncept“. Můžete také přidat tolik hodnot, kolik chcete, oddělených čárkami.

  1. Použití klauzule SQL WHERE IN s příkazem Delete

Předpokládejme, že máte tabulku nazvanou „zákazníci“ s následujícími údaji:

SQL WHERE IN – Vysvětleno s příklady

Chcete-li odstranit řádky z této tabulky na základě více hodnot ve sloupci „Město“, lze klauzuli SQL WHERE IN použít s příkazem DELETE, jak je znázorněno v následujícím dotazu:

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

Tento příkaz vymaže všechny řádky z tabulky „zákazníci“, kde názvy sloupců „City“ odpovídají jakékoli z hodnot v seznamu, tj. „New York“, „Chicago“, „Miami“. Ve výše uvedeném příkladu odstraní z tabulky první, třetí a pátý řádek.

Všimněte si, že při použití klauzule WHERE IN s příkazem DELETE byste měli být velmi opatrní, abyste se vyhnuli chybám tím, že zajistíte, že odstraníte správná data. Před spuštěním dotazu v celé databázi je nejlepší otestovat dotaz na malé podmnožině dat.

  1. Použití operátoru WHERE IN a klauzule SQL WHERE k filtrování dat na základě číselných hodnot

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

Tento dotaz vrátí všechny řádky z tabulky „zákazníci“, kde sloupec věk obsahuje číselné hodnoty 25, 30 nebo 35 a sloupec město obsahuje hodnotu „Londýn“.

Všimněte si, že operátor WHERE IN je logický operátor, který umožňuje zadat více hodnot pouze pro jeden sloupec. Příkaz SELECT se používá k načtení dat z tabulky a klauzule WHERE se používá k filtrování dat na základě specifických podmínek.

V tomto příkladu dotaz vrací řádky z tabulky „zákazníci“, kde sloupec věku odpovídá jedné ze zadaných číselných hodnot a sloupec města odpovídá hodnotě „Londýn“. Názvy sloupců použité v tomto dotazu jsou „věk“ a „město“ a dotazovaná tabulka je „zákazníci“.

  1. Použití WHERE IN s příkazem SELECT a operátorem IN.

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

V tomto příkladu používáme dílčí dotaz k načtení všech ID zákazníků z tabulky „zákazníci“, kde sloupec země obsahuje hodnotu „USA“. Poté pomocí operátoru WHERE IN filtrujeme tabulku „objednávky“ na základě těchto ID zákazníků.

Tento dotaz vrátí všechny řádky z tabulky objednávek, kde sloupec customer_id odpovídá jednomu z ID zákazníků vrácených poddotazem.

Pamatujte, že operátor WHERE IN je operátor porovnání, který umožňuje porovnat sloupec se seznamem hodnot. V tomto případě porovnáváme sloupec customer_id se seznamem ID zákazníků vrácených dílčím dotazem.

Pomocí tohoto operátoru a dílčího dotazu můžete filtrovat data na základě specifických kritérií a načíst pouze data, která vyhovují vašim potřebám.

2 hlavní výhody použití SQL klauzule WHERE IN?

  1. Vylepšený výkon dotazů

Klauzule nabízí jednu z největších výhod, pokud jde o výkon dotazů. Při filtrování dat na základě více hodnot může být použití klauzule mnohem efektivnější a rychlejší než psaní více klauzulí WHERE s operátory OR. Je to proto, že databázový stroj může optimalizovat plán provádění dotazů, aby efektivně získal potřebná data.

Zvažte například následující dotazy SQL s tabulkou „zákazníci“, kde se snažíme identifikovat podrobnosti o zákaznících na základě jejich zemí.

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

SQL WHERE IN – Vysvětleno s příklady

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

SQL WHERE IN – Vysvětleno s příklady

Jak je vidět ve výše uvedeném příkladu, použití klauzule může vést k výraznému zlepšení výkonu dotazu a ušetřit vám více času. Je snazší vybrat všechny země najednou, než vybírat zemi po zemi pomocí operátoru OR v mnohem větším souboru dat.

  1. Zjednodušené psaní dotazů

Další velkou výhodou použití klauzule SQ L WHERE IN je to, že může zjednodušit proces psaní složitých dotazů. Když potřebujete filtrovat data na základě více hodnot, použití více klauzulí WHERE s operátory OR se může rychle stát těžkopádným a obtížně spravovatelným.

Použití klauzule vám umožňuje zadat všechny hodnoty, které chcete filtrovat, v jediném příkazu, což usnadňuje čtení a údržbu vašich dotazů. To může být užitečné zejména při práci s velkými datovými sadami nebo když potřebujete psát složité dotazy s více podmínkami.

Zvažte například následující SQL dotaz:

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

V obou dotazech z výše uvedeného příkladu dotaz vrátí všechny „elektronické“ produkty od společností Apple, Samsung a Sony.

Použití klauzule WHERE IN, jak je vidět v druhém dotazu, však může zjednodušit proces používání složitých dotazů a usnadnit jejich čtení a pochopení.

Kromě toho také pomáhá vyhnout se chybám a snižuje časovou náročnost.

Naše závěrečné slovo

Gratulujeme! Nyní víte, jak používat klauzuli SQL WHERE IN k filtrování dat na základě seznamu hodnot. Zhodnoťme, co jsme se naučili:

Pomocí WHERE IN můžete zjednodušit řadu SQL dotazů a vytvořit je, abyste získali efektivněji zapsaný výstup.

Pamatujte, že WHERE IN je zkratka pro více podmínek NEBO, takže může nahradit dlouhé seznamy příkazů NEBO. Kromě toho lze klauzuli použít s poddotazy, což vám umožní filtrovat data na základě výsledků jiného dotazu.

Při použití WHERE IN je důležité vzít v úvahu datové typy hodnot, které porovnáváte. Pokud se datové typy neshodují, možná budete muset použít funkce převodu typů, abyste zajistili přesné srovnání.

Celkově je klauzule SQL WHERE IN výkonná, ale základní syntaxe pro filtrování dat v dotazech SQL. Zvládnutím této klauzule můžete zlepšit výkon a čitelnost svého kódu SQL, což usnadňuje práci a údržbu z dlouhodobého hlediska.


Vytvoření tabulky data v LuckyTemplates

Vytvoření tabulky data v LuckyTemplates

Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.

LuckyTemplates Mobile Reporting Tipy a techniky

LuckyTemplates Mobile Reporting Tipy a techniky

Tento stručný návod zdůrazňuje funkci mobilního hlášení LuckyTemplates. Ukážu vám, jak můžete efektivně vytvářet přehledy pro mobily.

Profesionální servisní analytické zprávy v LuckyTemplates

Profesionální servisní analytické zprávy v LuckyTemplates

V této ukázce LuckyTemplates si projdeme sestavy ukazující profesionální analýzy služeb od firmy, která má více smluv a zákaznických vztahů.

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.

Bežné funkcie SQL: Prehľad

Bežné funkcie SQL: Prehľad

Objavte niektoré bežné funkcie SQL, ktoré môžeme použiť, ako napríklad reťazec, dátum a niektoré pokročilé funkcie na spracovanie alebo manipuláciu s údajmi.

Vytvoření šablony LuckyTemplates: Průvodce a tipy

Vytvoření šablony LuckyTemplates: Průvodce a tipy

V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.

Parametry pole a malé násobky v LuckyTemplates

Parametry pole a malé násobky v LuckyTemplates

V tomto blogu si ukážeme, jak vrstvit parametry pole s malými násobky, abychom vytvořili neuvěřitelně užitečné přehledy a vizuály.

LuckyTemplates Rank a vlastní seskupení

LuckyTemplates Rank a vlastní seskupení

V tomto blogu se dozvíte, jak používat funkce hodnocení LuckyTemplates a vlastní seskupování k segmentaci ukázkových dat a jejich seřazení podle kritérií.

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

V tomto tutoriálu se budu zabývat konkrétní technikou, jak zobrazit kumulativní součet pouze do určitého data ve vašich vizuálech v LuckyTemplates.

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Naučte se vytvářet a přizpůsobovat Bullet grafy v LuckyTemplates, které se používají hlavně pro měření výkonu oproti cílovým nebo předchozím rokům.