MySQL IF ELSE -käsky käytännön esimerkein

Viimeisin päivitys: 6 marraskuu 2025
Kirjoittaja: TecnoDigital
  • IF ELSE on MySQL:n ehdollinen funktio, joka palauttaa arvoja ehtojen perusteella. Se on hyödyllinen SELECT-funktiossa ja lausekkeissa.
  • Sitä voidaan yhdistää operaattoreihin, aggregaatioihin, alikyselyihin, CASE-, IFNULL-, REGEXP-, DATE_FORMAT- ja GROUP BY/HAVING-lausekkeisiin edistyneen logiikan saavuttamiseksi.
  • Sen avulla voit luokitella tietoja, käsitellä null-arvoja ja luoda dynaamisia viestejä tietuekohtaisesti, mutta liiallinen sisäkkäisyys voi vaikuttaa luettavuuteen ja suorituskykyyn.
jos muuten mysql esimerkein

Tässä artikkelissa aion näyttää sinulle, kuinka voit käyttää MySQL IF ELSE -lausetta esimerkein kyselyjen parantamiseksi ja tarkempien tulosten saamiseksi. Näiden 18 käytännön esimerkin avulla opimme käyttämään tätä tehokasta työkalua ja saamaan kaiken irti tietokannasta. Tutkimme tosielämän tapauksia, joissa IF ELSE:n käyttö vaikuttaa ehdollisen datan valinnasta monimutkaisten toimintojen suorittamiseen. Oletko valmis? No, mennään sinne! Valmistaudu hallitsemaan tämä tekniikka ja vie SQL-taitosi uudelle tasolle.

Mikä on IF ELSE -käsky MySQL:ssä?

Ennen kuin sukeltaamme esimerkkeihin, on tärkeää ymmärtää, mikä IF ELSE -käsky on MySQL:ssä. Pohjimmiltaan se on ehdollinen rakenne, jonka avulla voimme suorittaa erilaisia ​​​​toimintoja riippuen siitä, täyttyykö tietty ehto vai ei. Eli jos ehto on tosi, yksi koodilohko suoritetaan, ja jos se on epätosi, suoritetaan eri koodilohko.

MySQL IF ELSE -lause ja esimerkkejä

Tässä luetellaan a taulukko, jossa on 18 esimerkkiä jonka tulemme näkemään tässä artikkelissa:

esimerkki kuvaus
1 IF ELSE:n peruskäyttö
2 JOS MUUTA useilla ehdoilla
3 Sisäkkäiset IF ELSE -lauseet
4 JOS MUU loogisilla operaattoreilla
5 JOS MUU koontifunktioilla
6 JOS MUUTA alikyselyillä
7 JOS MUU muuttujilla
8 JOS MUUTA CASE:n kanssa
9 JOS MUU IFNULL:n kanssa
10 JOS MUU NULLIF:llä
11 JOS MUU ON OLEMASSA
12 JOS MUU IN
13 JOS MUUT BETWEEN:in kanssa
14 JOS MUUTA LIKE:llä
15 JOS MUU REGEXP:llä
16 JOS MUU, DATE_FORMAT
17 JOS MUU GROUP_CONCAT
18 JOS MUUT OTTAVALLA

1. IF ELSE:n peruskäyttö

Katsotaanpa yksinkertaista esimerkkiä aluksi. Oletetaan, että meillä on taulukko nimeltä "tuotteet", jossa on seuraavat kentät: id, nimi, hinta ja varasto. Haluamme saada tuotteen nimen ja viestin, onko tuotetta varastossa vai ei. Voimme tehdä sen näin:

SELECT nombre, IF(stock > 0, 'Hay stock', 'No hay stock') AS stock 
FROM productos;

Tässä tapauksessa ehto on stock > 0. Jos se täyttyy, näyttöön tulee viesti 'In stock' ja jos se ei täyty, 'Out of stock' näytetään.

2. JOS MUU useilla ehdoilla

Voimme myös käyttää IF ELSE useilla ehdoilla. Oletetaan esimerkiksi, että haluamme saada tuotteen nimen ja viestin, joka kertoo, onko hinta suurempi kuin 100, alle 50 vai 50 ja 100 välillä. Voimme tehdä tämän seuraavasti:

SELECT nombre, 
  IF(precio > 100, 'Caro', 
    IF(precio < 50, 'Barato', 'Precio medio')
  ) AS precio
FROM productos;

Tässä tapauksessa käytämme sisäkkäisiä IF ELSE -lauseita arvioimaan eri ehtoja.

3. Sisäkkäinen JOS MUU

Kuten näimme edellisessä esimerkissä, voimme sisäkkäin useita IF ELSE -käskyjä arvioida eri ehtoja. Katsotaanpa toista esimerkkiä. Oletetaan, että haluamme saada tuotteen nimen ja viestin, joka kertoo, onko varasto suurempi kuin 100, pienempi kuin 10 vai välillä 10 ja 100. Lisäksi, jos varasto on alle 10, haluamme ilmoittaa, onko se 0 vai ei. Voimme tehdä sen näin:

SELECT nombre,
  IF(stock > 100, 'Stock alto',
    IF(stock < 10, 
      IF(stock = 0, 'Sin stock', 'Stock bajo'),
      'Stock medio'
    )
  ) AS stock
FROM productos;

Tässä tapauksessa käytämme kolmea sisäkkäistasoa arvioidaksemme kaikki tarvittavat olosuhteet.

4. JOS MUU loogisilla operaattoreilla

Voimme myös yhdistää IF ELSE loogisiin operaattoreihin, kuten AND ja OR. Oletetaan esimerkiksi, että haluamme saada tuotteen nimen ja viestin, joka kertoo, onko hinta suurempi kuin 100 ja varasto pienempi kuin 10. Voimme tehdä sen seuraavasti:

SELECT nombre,
  IF(precio > 100 AND stock < 10, 'Urgente reponer', 'OK') AS estado
FROM productos;

Tässä tapauksessa ehto on precio > 100 AND stock < 10. Jos molemmat ehdot täyttyvät, näyttöön tulee viesti "Kiireellinen täydennys" ja jos ne eivät täyty, "OK" tulee näkyviin.

5. JOS MUU koontifunktioilla

Voimme yhdistää IF ELSE aggregointitoimintoihin, kuten SUM, AVG, MAX jne. Oletetaan esimerkiksi, että haluamme saada kokonaismyynnin ja viestin, joka kertoo, olemmeko ylittäneet tavoitteen 10000 XNUMX vai ei. Voimme tehdä sen näin:

SELECT 
  SUM(total) AS total_ventas,
  IF(SUM(total) > 10000, '¡Objetivo superado!', 'No se alcanzó el objetivo') AS mensaje
FROM ventas;

Tässä tapauksessa laskemme kokonaismyynnin SUM-arvolla ja näytämme sitten IF ELSE -sovelluksella viestin sen perusteella, onko tavoite ylitetty vai ei.

  Tietokannan suojaus: käsitteet ja parhaat käytännöt

6. JOS MUUT alikyselyillä

Voimme käyttää myös IF ELSE alikyselyjen kanssa. Oletetaan esimerkiksi, että haluamme saada tuotteiden nimet ja viestin, joka kertoo, onko niiden hinta korkeampi kuin kaikkien tuotteiden keskihinta. Voimme tehdä sen näin:

SELECT nombre,
  IF(precio > (SELECT AVG(precio) FROM productos), 
    'Precio superior a la media', 
    'Precio inferior o igual a la media'
  ) AS comparacion
FROM productos;

Tässä tapauksessa käytämme alikyselyä laskeaksemme kaikkien tuotteiden keskihinnan ja vertaamme sitten jokaista yksittäistä hintaa kyseiseen arvoon käyttämällä JOS MUUTA.

7. IF MUUT muuttujilla

Voimme käyttää IF ELSEä yhdessä muuttujien kanssa arvojen tallentamiseen ja käyttämiseen kyselyissämme. Oletetaan esimerkiksi, että haluamme saada kokonaismyynnin ja viestin, joka osoittaa, olemmeko ylittäneet muuttujaan tallentamamme tavoitteen. Voimme tehdä sen näin:

SET @objetivo = 10000;

SELECT 
  SUM(total) AS total_ventas,
  IF(SUM(total) > @objetivo, '¡Objetivo superado!', 'No se alcanzó el objetivo') AS mensaje 
FROM ventas;

Tässä tapauksessa määritämme ensin muuttujan @objetivo arvolla 10000 ja sitten käytämme sitä JOS ELSE -tilassa.

8. JOS MUU CASE

Toinen tapa käyttää IF ELSE -toimintoa on yhdistää se CASE-lausunto. Oletetaan esimerkiksi, että haluamme saada tuotteen nimen ja sen hinnan luokituksen "Halpa", "Keskitaso" tai "Kallis" tiettyjen vaihteluvälien perusteella. Voimme tehdä sen näin:

SELECT nombre,
  CASE 
    WHEN precio < 50 THEN 'Barato'
    WHEN precio BETWEEN 50 AND 100 THEN 'Medio'
    ELSE 'Caro'
  END AS clasificacion
FROM productos;

Tässä tapauksessa käytämme CASEa eri ehtojen arvioimiseen ja arvon määrittämiseen tuloksen perusteella. Se on vaihtoehtoinen tapa tehdä sama asia kuin sisäkkäisillä IF ELSE -lauseilla.

9. JOS MUU IFNULL:lla

IFNULL-funktion avulla voimme käsitellä nolla-arvoja kyselyissämme. Voimme yhdistää sen IF ELSE:n kanssa määrittääksemme oletusarvon, kun kohtaamme nolla-arvon. Oletetaan esimerkiksi, että haluamme saada tuotteen nimen ja sen hinnan, mutta jos hinta on tyhjä, haluamme näyttää viestin "Kysely". Voimme tehdä sen näin:

SELECT nombre, IFNULL(precio, 'Consultar') AS precio
FROM productos;

Tässä tapauksessa käytämme IFNULL-arvoa arvioidaksemme, onko hinta nolla, ja jos on, näytämme 'Kysely'-viestin nullarvon sijaan.

10. JOS MUU NULLIF

NULLIF-funktio on samanlainen kuin IFNULL, mutta sen sijaan, että käsittelemme nolla-arvoja, sen avulla voimme verrata kahta arvoa ja palauttaa NULL, jos ne ovat yhtä suuret. Voimme yhdistää sen IF ELSE:n kanssa antaaksemme vaihtoehtoisen arvon, kun tietty ehto täyttyy. Oletetaan esimerkiksi, että haluamme saada tuotteen nimen ja sen hinnan, mutta jos hinta on 0, haluamme näyttää viestin "Ilmainen". Voimme tehdä sen näin:

SELECT nombre, IF(NULLIF(precio, 0) IS NULL, 'Gratis', precio) AS precio
FROM productos;

Tässä tapauksessa käytämme arvoa NULLIF vertaamaan hintaa 0:aan ja palauttamaan NULL-arvon, jos ne ovat yhtä suuret. Arvioimme sitten IF ELSE -arvon avulla, onko NULLIF:n tulos NULL, ja jos on, näytämme viestin "Ilmainen" hinnan sijaan.

11. JOS MUU ON OLEMASSA

EXISTS-lauseen avulla voimme tarkistaa, onko alikyselyssä tietueita, jotka täyttävät tietyn ehdon. Voimme yhdistää sen IF ELSE:n kanssa tehdäksemme päätöksiä tuloksen perusteella. Oletetaan esimerkiksi, että haluamme saada asiakkaiden nimet ja viestin, joka kertoo, ovatko he tehneet tilauksen vai eivät. Voimme tehdä sen näin:

SELECT nombre,
  IF(EXISTS(SELECT * FROM pedidos WHERE cliente_id = clientes.id),
    'Con pedidos',
    'Sin pedidos'
  ) AS estado
FROM clientes;

Tässä tapauksessa käytämme EXISTS-toimintoa alikyselyn kanssa tarkistaaksemme, onko kullekin asiakkaalle olemassa tilauksia. Käytämme sitten IF ELSE -näppäintä näyttääksemme tuloksen perusteella viestin.

12. JOS MUU IN

IN-operaattorin avulla voimme tarkistaa, onko arvo arvoluettelossa. Voimme yhdistää sen IF ELSE:n kanssa tehdäksemme päätöksiä tuloksen perusteella. Oletetaan esimerkiksi, että haluamme saada tuotteiden nimet ja viestin, joka kertoo, kuuluvatko ne luokkaan "Elektroniikka" vai "Koti". Voimme tehdä sen näin:

SELECT nombre,
  IF(categoria IN ('Electrónica', 'Hogar'),
    'Producto destacado',
    'Producto regular'
  ) AS tipo
FROM productos;

Tässä tapauksessa käytämme IN tarkistaaksemme, onko tuoteluokka lueteltu kohdassa "Elektroniikka" tai "Koti". Käytämme sitten IF ELSE -näppäintä näyttääksemme tuloksen perusteella viestin.

  SQL Serverin edut ja haitat yrityksellesi

13. IF MUUT BETWEENin kanssa

BETWEEN-operaattorin avulla voimme tarkistaa, onko arvo arvoalueella. Voimme yhdistää sen IF ELSE:n kanssa tehdäksemme päätöksiä tuloksen perusteella. Oletetaan esimerkiksi, että haluamme saada tuotteiden nimet ja viestin, joka kertoo, onko niiden hinta 50–100. Voimme tehdä sen seuraavasti:

SELECT nombre,
  IF(precio BETWEEN 50 AND 100,
    'Precio en rango',
    'Precio fuera de rango'
  ) AS rango
FROM productos;

Tässä tapauksessa tarkistamme BETWEEN-komennolla, onko tuotteen hinta 50 ja 100 välillä. Tämän jälkeen käytämme IF ELSE-näppäintä näyttääksemme tuloksen perusteella viestin.

14. JOS MUU TYKKÄÄN

LIKE-operaattorin avulla voimme etsiä kuvioita tekstijonoista. Voimme yhdistää sen IF ELSE:n kanssa tehdäksemme päätöksiä tuloksen perusteella. Oletetaan esimerkiksi, että haluamme saada tuotteiden nimet ja viestin, joka kertoo, sisältääkö niiden nimi sanan "iPhone". Voimme tehdä sen näin:

SELECT nombre,
  IF(nombre LIKE '%iPhone%',
    'Producto de Apple',
    'Otro producto'
  ) AS tipo
FROM productos;

Tässä tapauksessa käytämme LIKE-näppäintä tarkistaaksemme, sisältääkö tuotteen nimi sanan "iPhone". Käytämme sitten IF ELSE -näppäintä näyttääksemme tuloksen perusteella viestin.

15. JOS MUU REGEXP:llä

REGEXP-operaattorin avulla voimme etsiä monimutkaisempia kuvioita tekstimerkkijonoista käyttämällä säännölliset lausekkeet. Voimme yhdistää sen IF ELSE:n kanssa tehdäksemme päätöksiä tuloksen perusteella. Oletetaan esimerkiksi, että haluamme saada asiakkaan nimen ja viestin, joka kertoo, onko hänen sähköpostinsa kelvollinen vai ei. Voimme tehdä sen näin:

SELECT nombre,
  IF(email REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z]{2,}$',
    'Email válido',
    'Email inválido'
  ) AS validacion
FROM clientes;

Tässä tapauksessa käytämme REGEXP:tä säännöllisen lausekkeen kanssa tarkistaaksemme, vastaako asiakkaan sähköposti kelvollista muotoa. Käytämme sitten IF ELSE -näppäintä näyttääksemme tuloksen perusteella viestin.

16. JOS MUU, DATE_FORMAT

DATE_FORMAT-funktion avulla voimme muotoilla päivämäärät kyselyissämme. Voimme yhdistää sen IF ELSE:n kanssa tehdäksemme päätöksiä tuloksen perusteella. Oletetaan esimerkiksi, että haluamme saada tilausten nimet ja viestin, joka kertoo, onko ne tehty viikonloppuna vai ei. Voimme tehdä sen näin:

SELECT id,
  IF(DATE_FORMAT(fecha, '%w') IN (0, 6),
    'Fin de semana',
    'Día de semana'
  ) AS dia
FROM pedidos;

Tässä tapauksessa käytämme muotoa DATE_FORMAT saadaksemme tilauspäivän viikonpäivän (0 sunnuntaina, 6 lauantaina). Tarkistamme sitten IF ELSE -näppäimen avulla, onko päivä 0 vai 6, ja näytämme tuloksen perusteella viestin.

17. JOS MUU GROUP_CONCAT

GROUP_CONCAT-funktion avulla voimme ketjuttaa arvot useilta riveiltä yhdeksi merkkijonoksi. Voimme yhdistää sen IF ELSE:n kanssa tehdäksemme päätöksiä tuloksen perusteella. Oletetaan esimerkiksi, että haluamme saada asiakkaan nimen ja viestin, joka kertoo, ostiko hän iPhonen vai Samsungin. Voimme tehdä sen näin:

SELECT c.nombre,
  IF(GROUP_CONCAT(p.nombre) LIKE '%iPhone%', 
    'Compró iPhone',
    IF(GROUP_CONCAT(p.nombre) LIKE '%Samsung%',
      'Compró Samsung',
      'No compró iPhone ni Samsung'
    )
  ) AS mensaje
FROM clientes c
JOIN pedidos pe ON c.id = pe.cliente_id
JOIN productos p ON pe.producto_id = p.id
GROUP BY c.id;

Tässä tapauksessa käytämme GROUP_CONCAT:ia ketjuttaaksemme kunkin asiakkaan ostamien tuotteiden nimet. Käytämme sitten IF ELSE ja LIKE tarkistaaksemme, sisältääkö tuloksena oleva merkkijono "iPhone" tai "Samsung", ja näytämme tuloksen perusteella viestin.

18. JOS MUU OTTAA

La ON lauseke antaa meille mahdollisuuden suodattaa GROUP BY -kyselyn tulokset tiettyjen ehtojen perusteella. Voimme yhdistää sen IF ELSE:n kanssa tehdäksemme päätöksiä tuloksen perusteella. Oletetaan esimerkiksi, että haluamme saada tilausten määrän asiakasta kohti ja viestin, joka kertoo, ovatko he VIP-asiakkaita (10+ tilausta) vai kanta-asiakkaita. Voimme tehdä sen näin:

SELECT c.nombre, COUNT(p.id) AS total_pedidos,
  IF(COUNT(p.id) > 10,
    'Cliente VIP',
    'Cliente regular'
  ) AS tipo_cliente
FROM clientes c
JOIN pedidos p ON c.id = p.cliente_id
GROUP BY c.id
HAVING COUNT(p.id) > 5;

Tässä tapauksessa käytämme GROUP BY:tä tilausten ryhmittelyyn asiakkaiden mukaan ja kunkin tilausten määrän laskemiseen COUNT-toiminnolla. Käytämme sitten HAVING-työkalua suodattaaksemme pois vain asiakkaat, joilla on yli 5 tilausta. Lopuksi käytämme JOS MUUTA näyttämään viestin sen perusteella, onko tilausten kokonaismäärä suurempi kuin 10 vai ei.

  SQL tyhjästä: Lähtökohtasi tietokannassa

Usein kysytyt kysymykset IF ELSE MySQL:stä esimerkeineen

1. Mikä on IF ELSE -käsky MySQL:ssä?

IF ELSE -lause MySQL on ehdollinen rakenne jonka avulla voimme suorittaa erilaisia ​​toimintoja riippuen siitä, täyttyykö tietty ehto vai ei.

2. Kuinka käyttää IF ELSE -käskyä MySQL:ssä?

IF ELSE -käskyn perussyntaksi MySQL:ssä on seuraava:

IF(condición, valor_si_verdadero, valor_si_falso)

3. Voidaanko MySQL:ssä upottaa useita IF ELSE -käskyjä?

Kyllä, voit upottaa useita IF ELSE -lauseita arvioidaksesi erilaisia ​​ehtoja ja tehdäksesi päätöksiä tulosten perusteella.

4. Voidaanko IF ELSE yhdistää muihin MySQL-funktioihin ja -lauseisiin?

Kyllä, IF ELSE voidaan yhdistää moniin muihin MySQL-funktioihin ja -lauseisiin, kuten koontifunktioihin, alikyselyihin, CASE, IFNULL, NULLIF, EXISTS, IN, BETWEEN, LIKE, REGEXP, DATE_FORMAT, GROUP_CONCAT, HAVING ja muihin.

5. Mitä eroa on IF ELSE ja CASE välillä MySQL:ssä?

Sekä IF ELSE että CASE antavat meille mahdollisuuden suorittaa erilaisia ​​toimintoja tietyin edellytyksin. Suurin ero on se, että IF ELSE -komentoa käytetään arvioimaan yksittäinen ehto ja suorittamaan toiminto, täyttyykö se vai ei, kun taas CASE-komentoa käytetään useiden ehtojen arvioimiseen ja eri toimintojen suorittamiseen tuloksen perusteella.

6. Onko IF ELSE:n käytössä MySQL:ssä rajoituksia?

IF ELSE:n käytölle MySQL:ssä ei ole merkittäviä rajoituksia arvioitavien ehtojen logiikan ja syntaksin rajoitusten lisäksi. On kuitenkin tärkeää huomata, että IF ELSE:n liikakäyttö tai väärinkäyttö voi vaikuttaa kyselyn suorituskykyyn ja vaikeuttaa koodin lukemista ja ylläpitoa.

IF ELSE MySQL:n päätelmä esimerkein

Tässä artikkelissa olemme oppineet, mikä on IF ELSE -käsky MySQL:ssä ja kuinka sitä käytetään erilaisten toimien suorittamiseen tietyissä olosuhteissa. Olemme nähneet 18 käytännön esimerkkejä käytöstä IF ELSE, yhdistämällä sen muihin MySQL-funktioihin ja -lauseisiin, kuten koontifunktioihin, alikyselyihin, CASE, IFNULL, NULLIF, EXISTS, IN, BETWEEN, LIKE, REGEXP, DATE_FORMAT, GROUP_CONCAT ja HAVING.

Toivon, että näistä esimerkeistä on ollut hyötyä ja että ne auttavat sinua ymmärtämään paremmin, kuinka IF ELSE -käyttöä käytetään neuvottelut MySQL:stä. Ja älä unohda jakaa tätä artikkelia ystävillesi ja kollegoillesi, jos pidit siitä mielenkiintoista!