Select first letter.

Overzicht Reageren

Mitchel V

Mitchel V

16/06/2010 09:43:20
Quote Anchor link
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
 
PHP hulp

PHP hulp

07/08/2022 23:30:23
 
John D

John D

16/06/2010 09:53:43
Quote Anchor link
select naam from voornaam where substring(naam,1,1)in ('M','m')
etc
Gewijzigd op 16/06/2010 10:01:52 door John D
 
Boris Mattijssen

Boris Mattijssen

16/06/2010 10:08:42
Quote Anchor link
of
select naam from voornaam where naam LIKE 'm%'
 

16/06/2010 10:32:18
Quote Anchor link
Boris Mattijssen op 16/06/2010 10:08:42:
of
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.
 
Arjan -

Arjan -

16/06/2010 10:40:45
Quote Anchor link
Karl Karl op 16/06/2010 10:32:18:
Boris Mattijssen op 16/06/2010 10:08:42:
of
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 -
 
Mitchel V

Mitchel V

16/06/2010 10:40:50
Quote Anchor link
ik gebruik nu

select naam from voornaam where naam LIKE 'm%'

had ik al ergens gevonden op google.
Dat werkt prima.

bedankt
 
Jelmer -

Jelmer -

16/06/2010 10:42:04
Quote Anchor link
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 :)
 

16/06/2010 10:44:43
Quote Anchor link
Ohhhhhh, shoot. Inderdaad. My bad, ik heb niks gezegd :-X.


/me gaat wel weer terug naar z'n puzzle...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.