Select first letter.
Hallo.
Ik heb een tabel "voornaam" in de database zitten.
Ik wil een SQL waar ik kan selecteren de mensen met de eerste letter m of de letter M worden uit gelezen.
Hoe kan ik dit doen?
Greets Mitch
Ik heb een tabel "voornaam" in de database zitten.
Ik wil een SQL waar ik kan selecteren de mensen met de eerste letter m of de letter M worden uit gelezen.
Hoe kan ik dit doen?
Greets Mitch
Gesponsorde koppelingen:
select naam from voornaam where substring(naam,1,1)in ('M','m')
etc
etc
Gewijzigd op 16/06/2010 10:01:52 door John D
of
select naam from voornaam where naam LIKE 'm%'
select naam from voornaam where naam LIKE 'm%'
Boris Mattijssen op 16/06/2010 10:08:42:
of
select naam from voornaam where naam LIKE 'm%'
select naam from voornaam where naam LIKE 'm%'
Nee, dat werkt niet. Nu matcht namelijk ook mattijssen, want % matcht één of meerdere karakters. Je kunt dan misschien beter _ gebruiken. Maar volgens mij is de oplossing van John netter en minder intensief voor de db.
Karl Karl op 16/06/2010 10:32:18:
Nee, dat werkt niet. Nu matcht namelijk ook mattijssen, want % matcht één of meerdere karakters. Je kunt dan misschien beter _ gebruiken. Maar volgens mij is de oplossing van John netter en minder intensief voor de db.
Boris Mattijssen op 16/06/2010 10:08:42:
of
select naam from voornaam where naam LIKE 'm%'
select naam from voornaam where naam LIKE 'm%'
Nee, dat werkt niet. Nu matcht namelijk ook mattijssen, want % matcht één of meerdere karakters. Je kunt dan misschien beter _ gebruiken. Maar volgens mij is de oplossing van John netter en minder intensief voor de db.
Dit is toch precies wat de TS wil? De LIKE 'm%' selecteert alle namen beginnend met een m of M .
En de manier van John is vele malen intensiever voor de database. Deze moet namelijk alle rijen af en de eerste letter vergelijken met de waarden in IN('m','M') . Dit is bij grote tabellen niet aan te raden.
Gewijzigd op 16/06/2010 10:42:15 door Arjan -
ik gebruik nu
select naam from voornaam where naam LIKE 'm%'
had ik al ergens gevonden op google.
Dat werkt prima.
bedankt
select naam from voornaam where naam LIKE 'm%'
had ik al ergens gevonden op google.
Dat werkt prima.
bedankt
Karl Karl op 16/06/2010 10:32:18:
Nee, dat werkt niet. Nu matcht namelijk ook mattijssen, want % matcht één of meerdere karakters. Je kunt dan misschien beter _ gebruiken. Maar volgens mij is de oplossing van John netter en minder intensief voor de db.
Dat is toch ook de bedoeling? Volgens mij is LIKE sneller, omdat dat een index kan gebruiken. SUBSTRING moet op iedere row uitgevoerd worden. Maar zoals altijd: EXPLAIN $query geeft uitsluitsel :)
Ohhhhhh, shoot. Inderdaad. My bad, ik heb niks gezegd :-X.
/me gaat wel weer terug naar z'n puzzle...
/me gaat wel weer terug naar z'n puzzle...



