sql >> Database >  >> RDS >> Mysql

Hoe de CASE-verklaring in MySQL te gebruiken?

Omdat er elke dag een gigantische hoeveelheid gegevens wordt gegenereerd, is het belangrijk om gegevens op basis van een paar voorwaarden op te halen. In dit artikel over de CASE-instructie in MySQL zal ik bespreken hoe u deze verklaring kunt gebruiken om gegevens over een enkele voorwaarde of meerdere voorwaarden op te halen.

De volgende onderwerpen worden in dit artikel behandeld:

  • Inleiding tot SQL
  • Wat is het doel van SQL?
  • CASE in MySQL
  • Syntaxis van CASE in MySQL
  • Voorbeeld van CASE in MySQL

Wat is SQL?

SQL is een domeinspecifieke taal die veel wordt gebruikt bij het programmeren. Het is ontworpen voor het beheren van gegevens in een relationeel databasebeheersysteem (RDBMS), of voor stroomverwerking in een relationeel gegevensstroombeheersysteem. Over het algemeen is SQL een standaardtaal die helpt bij het opslaan, manipuleren en ophalen van gegevens in databases.

Wat is het doel van SQL?

SQL wordt in principe gebruikt om met een database te communiceren. Volgens ANSI (American National Standards Institute) wordt het beschouwd als de standaardtaal voor relationele databasebeheersystemen (RDBMS). We gebruiken SQL-statements om taken uit te voeren zoals het bijwerken, invoegen, verwijderen of ophalen van gegevens uit een database.

Wat is de CASE-instructie in MySQL?

CASE-instructie in MySQL is een manier om de if/else-logica af te handelen. Het is een soort controle-instructie die de cel van programmeertalen vormt, omdat ze de uitvoering van andere sets instructies controleren.

De CASE-instructie doorloopt verschillende voorwaarden en retourneert waarden als en wanneer aan de eerste voorwaarde wordt voldaan (zoals een IF-THEN-ELSE-instructie in talen op laag niveau). Zodra een voorwaarde waar is, stopt het met doorlopen en retourneert het resultaat. Als geen van de voorwaarden waar is, wordt de waarde in de ELSE-clausule geretourneerd.

Als er geen ELSE-clausule is en geen van de voorwaarden waar is, wordt gewoon NULL geretourneerd.

Syntaxis van CASE-instructie in MySQL

Basissyntaxis:

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

Er kunnen twee manieren zijn om CASE-Switch-statements te verkrijgen:

  • Neemt een variabele met de naam case_value en matcht deze met een statement_list.
CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END;
  • Overweeg een zoekconditie in plaats van een variabele gelijkheid en voer de statement_list dienovereenkomstig uit.
CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END;

Voorbeeld van CASE-instructie in MySQL

Laten we eens kijken naar een tafel:STUDENT

Studententabel

Student-ID Naam Afdeling Gender
001 Akash CS M
002 Bikram Mech M
003 Chandan CS M
004 Deepak CS M
005 Elicia EC F
006 Fernandes Mech F

Voorbeeld: Overweeg een scenario waarin u de afdelingsnamen moet wijzigen in hun volledige vorm. Als de afdelingsnaam CS is, moet deze worden geconverteerd naar Computer Science; Evenzo moet Mech worden geconverteerd naar Mechanical.and EC naar Electronic en Communication.

Voorbeeldquery

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;

Uitvoer:

De corresponderende afdelingsnamen worden als volgt hernoemd:

Student-ID Naam Afdeling Gender
001 Akash Informatica M
002 Bikram Mechanisch M
003 Chandan Informatica M
004 Deepak Informatica M
005 Elicia Elektronica en communicatie F
006 Fernandes Mechanisch F

Voorbeeld: Overweeg een scenario waarin u alle velden moet selecteren die overeenkomen met de tabel Student. Aangezien de waarden die in het veld Geslacht zijn geschreven waarden van één teken (M/V), laten we een query schrijven om M te wijzigen in Man en F in Vrouw.

Voorbeeldquery

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

Uitvoer:

Student-ID Naam Afdeling Gender
001 Akash Informatica Man
002 Bikram Mechanisch Man
003 Chandan Informatica Man
004 Deepak Informatica Man
005 Elicia Elektronica en communicatie Vrouw
006 Fernandes Mechanisch Vrouw

CASE Switch in SQL - Aangepast sorteren

Voorbeeldquery

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;

Uitvoer:

De uitvoer wordt gesorteerd volgens het opgegeven veld.

De bovenstaande procedure (functie) neemt een variabele van het datatype varchar als argument en sorteert op basis daarvan de tuples in de Student-tabel. Bovendien kunnen we ook CASE-statements gebruiken om voorwaarden te vergelijken.

Voorbeeld: Overweeg een tabel met de naam CONTACTEN die contactID en een websiteID bevat. Volgens deze details kan een gebruiker navigeren via deze links:'TechOnTheNet.com' of 'CheckYourMath.com'.

Voorbeeldquery

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

Het moet inmiddels duidelijk zijn dat bij het schrijven van Case-statements in MySQL een van de belangrijkste factoren is 'ze op de juiste manier te ordenen'. Houd er rekening mee dat de voorwaarden worden beoordeeld in de door u genoemde volgorde. Zodra een voorwaarde waar wordt, zal de CASE-instructie het resultaat retourneren en de voorwaarden niet verder evalueren. Wees dus voorzichtig bij het selecteren van de volgorde waarin u uw voorwaarden vermeldt.

Als je meer wilt weten over MySQL en deze open-source relationele database wilt leren kennen, bekijk dan onze MySQL DBA-certificeringstraining die wordt geleverd met door een instructeur geleide live training en real- levensproject ervaring. Deze training zal u helpen MySQL diepgaand te begrijpen en u te helpen het onderwerp onder de knie te krijgen.

Heeft u een vraag voor ons? Vermeld dit in het opmerkingengedeelte van deze "CASE-verklaring in MySQL" en we nemen contact met u op.


  1. De naam van een tabel in SQL Server wijzigen (T-SQL)

  2. De Database Documenter gebruiken in Access

  3. Hoe verwijder ik voorloop- en volgspaties in een MySQL-veld?

  4. Wijzig het type varchar-veld in integer:kan niet automatisch worden gecast om integer te typen