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.
- _ (aláhúzás): egy darab tetszőleges karaktert helyettesít
- % (százalék jel): bárhány darab tetszőleges karaktert helyettesít (a bárhány akár 0 is lehet!!!)
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):
Í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 né-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!
- Listázd ki az összes Nagy vezetéknevű tanulót a diak táblából, osztály szerint növekvő sorrendben!
- Listázd ki az összes olyan nevező iskoláját és kódjelét, valamint kategóriáját, akik normál kategóriába neveztek, és az iskolájuk neve tartalmazza az AMI szórészletet!
- Lekérdezés segítségével jelenítsd meg azoknak a megyeszékhelyeknek a listáját (a megyeszekhely táblából), amelyek neve a vár, vagy a bánya szórészletre végződik! A listában jelenjen meg a városok neve, megyéje, valamint lakosságszáma, utóbbi szerint csökkenő sorrendben!
- Dalma billentyűzetén sajnos elromlott az e betű. Listázd ki azon megyeszékhelyek neveit, amelyeket e betű használata NÉLKÜL is le lehet írni!