Tovább az úton...
A Python tananyagunk több új fejezettel bővült, amelyben új hasznos modulokkal ismerkedünk meg. Jó tanulást!

<info9>

Részleges egyezés a LIKE kulcsszóval

Speciális karakterek
A LIKE kulcsszó alapértelmezés szerint nem veszi figyelembe a kis- és nagybetűk közti eltéréseket, valamint a speciális betűket sem, tehát a LIKE "alma" feltételnek az Alma és az almá is megfelel.
Szövegtartalomra való szűrés esetén gyakran nem teljes egyezést keresünk. Előfordulhat, hogy a bizonyos kezdetű, bizonyos végű, vagy bizonyos szórészletet tartalmazó sorokat szeretnénk megtalálni - például minden olyan embert, akinek a neve Kovács-csal kezdődik, vagy épp az összes olyan iskolát, aminek a nevében szerepel a "Gimnázium" szó. Ezekben az esetekben zesetben pedig kiváló lehetőség a LIKE kulcsszó használata. A LIKE hasonlít a sima egyenlőségjel operátorra, azonban lehetővé teszi speciális, úgynevezett wildcard karakterek használatát a kifejezésekben. Ezek segítségével sablonokat készíthetünk, és kiválogathatjuk azokat a sorokat, amik megfelelnek egy adott sablonnak. A MySQL az alábbi két wildcard karaktert ismeri:

Egy szöveg csak akkor fog megfelelni a LIKE kulcsszó feltételének, ha az teljes egészében illeszkedik a megadott sablonra. Az alábbi példán áttekinthetünk néhány esetet ezzel kapcsolatban (kipróbálom):

LIKE kulcsszóval történő sablonillesztés működése

Íme néhány további példa arra, hogy hogyan hasznosíthatjuk még a LIKE-ot különféle problémák megoldására:

Szűrőkifejezés Leírás
WHERE `nev` LIKE "Kovács%" az összes olyan személy, akinek a neve Kovács-csal kezdődik
mivel azt nem vizsgáljuk jelenleg, hogy a Kovács után szóköz következik-e, így például a Kovácsné kezdetű neveket is vissza fogja adni
WHERE `nev` LIKE "%né" az összes olyan személy, akiknek a neve -re végződik
WHERE `nev` LIKE "%y%" az összes olyan személy, akinek a neve tartalmaz y-t (bárhol, akár az elején, akár a végén, akár bárhol középen)
WHERE `nev` LIKE "_a%" az összes olyan személy, akinek a nevének a második betűje a
WHERE `nev` LIKE "___ %" az összes olyan személy, akinek a nevének az első szava 3 karakterből áll
WHERE `nev` LIKE "% %" az összes olyan személy, akinek a neve legalább két szóból áll
WHERE `nev` LIKE "%a%a%" az összes olyan személy, akinek a nevében legalább két a betű található
WHERE `nev` LIKE "k%s" az összes olyan személy, akinek a neve K-val keződik, és S-sel végződik

A kifejezés használatát szemléltetendő, nézzünk néhány teljes kifejezést:

SELECT `nev` FROM `diak` WHERE `nev` LIKE "Kovács%"

Az összes Kovács-csal kezdődő nevű diák listázása (kipróbálom)

SELECT nev, megye FROM megyeszekhely WHERE nev LIKE "%k%"

Az összes olyan megyeszékhely, amelyeknek a nevében található K betű (kipróbálom)

SELECT nev FROM tantargy WHERE nev LIKE "%ika"

Az összes olyan tantárgy, amelyek neve ika-ra végződik (kipróbálom)

Próbáld ki!

Készítsd el az alábbi feladatokat a MySQL homokozóban!