sql >> Databáze >  >> RDS >> Mysql

Jak používat příkaz CASE v MySQL?

Vzhledem k tomu, že se každý den generuje obrovské množství dat, je důležité získávat data na základě několika podmínek. V tomto článku o příkazu CASE v MySQL budu diskutovat o tom, jak tento příkaz použít k načtení dat pro jednu nebo více podmínek.

Tento článek bude obsahovat následující témata:

  • Úvod do SQL
  • Jaký je účel SQL?
  • CASE v MySQL
  • Syntaxe CASE v MySQL
  • Příklad CASE v MySQL

Co je SQL?

SQL je doménově specifický jazyk, který je široce používán v programování. Je navržen pro správu dat obsažených v systému správy relačních databází (RDBMS) nebo pro zpracování toků v systému správy relačních datových toků. Obecně platí, že SQL je standardní jazyk, který pomáhá ukládat, manipulovat a získávat data v databázích.

Jaký je účel SQL?

SQL se v podstatě používá ke komunikaci s databází. Podle ANSI (American National Standards Institute) je považován za standardní jazyk pro systémy správy relačních databází (RDBMS). Příkazy SQL používáme k provádění úkolů, jako je aktualizace, vkládání, mazání nebo načítání dat z databáze.

Co je to příkaz CASE v MySQL?

Příkaz CASE v MySQL je způsob zpracování logiky if/else. Je to druh řídicího příkazu, který tvoří buňku programovacích jazyků, protože řídí provádění jiných sad příkazů.

Příkaz CASE prochází různými podmínkami a vrací hodnoty, jakmile je splněna první podmínka (jako příkaz IF-THEN-ELSE v jazycích nižší úrovně). Jakmile je podmínka splněna, zastaví se procházení a vrátí výsledek. Pokud není splněna žádná z podmínek, vrátí hodnotu v klauzuli ELSE.

Pokud neexistuje klauzule ELSE a žádná z podmínek není pravdivá, vrátí jednoduše NULL.

Syntaxe příkazu CASE v MySQL

Základní syntaxe:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionx THEN resultx
    ELSE result
END;

Existují dva způsoby, jak dosáhnout příkazů CASE-Switch:

  • Vezme proměnnou s názvem case_value a porovná ji s nějakým seznamem příkazů.
CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END;
  • Zvažte podmínku vyhledávání namísto rovnosti proměnné a podle toho spusťte seznam příkazů.
CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END;

Příklad příkazu CASE v MySQL

Podívejme se na tabulku:STUDENT

Stůl studentů

ID studenta Název Oddělení Pohlaví
001 Akáš CS M
002 Bikram Mechanismus M
003 Chandan CS M
004 Deepak CS M
005 Elicia EC F
006 Fernandes Mechanismus F

Příklad: Zvažte scénář, kde budete muset upravit názvy oddělení na jejich úplné tvary. Pokud je název oddělení CS, měl by být převeden na počítačovou vědu; Podobně by měl být Mech převeden na Mechanical. and EC na Electronic and Communication.

Ukázkový dotaz

CASE department_name
WHEN 'CS'
  THEN UPDATE Student SET
  department='Computer Science';
 WHEN 'EC'
  THEN UPDATE Student SET
  department='Electronics and Communication';
 ELSE UPDATE Student SET
 department=’Mechanical';
END;

Výstup:

Odpovídající názvy oddělení se přejmenují následovně:

ID studenta Jméno Oddělení Pohlaví
001 Akáš Počítačová věda M
002 Bikram Mechanické M
003 Chandan Počítačová věda M
004 Deepak Počítačová věda M
005 Elicia Elektronika a komunikace F
006 Fernandes Mechanické F

Příklad: Zvažte scénář, kde musíte vybrat všechna pole odpovídající tabulce Student. Vzhledem k tomu, že hodnoty zapsané v poli Pohlaví jsou jednoznakové hodnoty (M/F), napíšeme dotaz pro změnu M na Muž a F na Žena.

Ukázkový dotaz

SELECT Student ID, Name, Department,
CASE Gender
 WHEN'M' THEN 'Male'
 WHEN'F' THEN 'Female'
END
FROM Student;

Výstup:

ID studenta Jméno Oddělení Pohlaví
001 Akáš Počítačová věda Muž
002 Bikram Mechanické Muž
003 Chandan Počítačová věda Muž
004 Deepak Počítačová věda Muž
005 Elicia Elektronika a komunikace Žena
006 Fernandes Mechanické Žena

Přepínání CASE v SQL – vlastní řazení

Ukázkový dotaz

CREATE PROCEDURE GetStudent(@ColToSort varchar(150)) AS
SELECT StudentID, Name, Gender, Department
FROM Student
ORDER BY
  CASE WHEN @ColToSort='Department' THEN Department
       WHEN @ColToSort='Name' THEN Name
       WHEN @ColToSort='Gender' THEN Gender
       ElSE StudentID
  END;

Výstup:

Výstup se seřadí podle poskytnutého pole.

Výše uvedený postup (funkce) bere jako argument proměnnou datového typu varchar a na základě toho seřadí n-tice v tabulce Student. Kromě toho můžeme také použít příkazy CASE k porovnání podmínek.

Příklad: Zvažte tabulku s názvem CONTACTS, která obsahuje contactID a websiteID. Podle těchto podrobností může uživatel procházet těmito odkazy:‚TechOnTheNet.com‘ nebo ‚CheckYourMath.com‘.

Ukázkový dotaz

SELECT
CASE
&nbsp;&nbsp;WHEN contact_id < 1000 THEN 'TechOnTheNet.com'
&nbsp;&nbsp;WHEN website_id = 2 THEN 'CheckYourMath.com'
END
FROM contacts;

Už teď musí být jasné, že při psaní příkazů Case v MySQL je jedním z nejdůležitějších faktorů ‚jejich řazení správným způsobem‘. Nezapomeňte, že podmínky se vyhodnocují ve vámi uvedeném pořadí. Jakmile se jakákoli podmínka stane pravdivou, příkaz CASE vrátí výsledek a nebude podmínky dále vyhodnocovat. Buďte tedy opatrní při výběru pořadí, ve kterém uvádíte své podmínky.

Pokud se chcete dozvědět více o MySQL a seznámit se s touto relační databází s otevřeným zdrojovým kódem, podívejte se na naše certifikační školení MySQL DBA, které je součástí živého školení pod vedením instruktora a skutečného zkušenosti s projektem života. Toto školení vám pomůže porozumět MySQL do hloubky a pomůže vám dosáhnout zvládnutí tohoto předmětu.

Máte na nás otázku? Uveďte to prosím v sekci komentářů tohoto „Prohlášení CASE v MySQL“ a my se vám ozveme.


  1. Jak funguje Log() v PostgreSQL

  2. Spravujte sdružování připojení ve webové aplikaci pro více nájemců pomocí Spring, Hibernate a C3P0

  3. přístup odepřen pro načtení datového vstupního souboru v MySQL

  4. Jak importovat soubor Excel do SQL Server?