Plaatsnamen met voorvoegsels selecteren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Ariën -
Beheerder

- Ariën -

06/11/2019 21:40:35
Quote Anchor link
Ik heb een tabel met stationsnamen, en ik wil een overzicht maken op de beginletter.

Nu is dit 'a piece of cake' voor Schiedam, Sittard etc...:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT id, afk, place, is_station
    FROM locations
        WHERE place LIKE 's%'
        AND is_station = '1'


Maar hoe kunnen we het eigenwijze 's-Hertogenbosch en 't Harde bij de T of H krijgen?
En wat is wijsheid in de Nederlandse taal? :-)
Gewijzigd op 06/11/2019 21:46:37 door - Ariën -
 
PHP hulp

PHP hulp

19/11/2019 04:31:08
 
Michael -

Michael -

06/11/2019 22:33:38
Quote Anchor link
Als je er op wilt zoeken moet je misschien ook nog rekening houden met dubbele namen?
's Hertogenbosch/Den Bosch etc.

Je kun zoeken op het eerste Hoofdletter
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
preg_match( '/[A-Z]/', $string, $matches, PREG_OFFSET_CAPTURE );
Gewijzigd op 06/11/2019 22:51:07 door Michael -
 
Rob Doemaarwat

Rob Doemaarwat

06/11/2019 22:36:23
Quote Anchor link
https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-like
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
where regexp_like(place,'^[^A-Z]*H','c')

(die "H" is dus de "eerste letter" die je zoekt)
Gewijzigd op 06/11/2019 22:40:41 door Rob Doemaarwat
 
- Ariën -
Beheerder

- Ariën -

06/11/2019 22:45:18
Quote Anchor link
@Rob: En die 'c' dan?

Aha, gevonden.... Case sensitive :-)
Gewijzigd op 06/11/2019 22:46:51 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

06/11/2019 23:22:15
Quote Anchor link
Op ns.nl kun je ook Hertogenbosch ('s), Den Bosch of 's-Hertogenbosch invullen. Dus misschien is het sowieso een goed idee om meerdere benamingen voor hetzelfde station toe te staan.

Daarnaast zou ik persoonlijk geen case-sensitive vergelijkingen doen, ain't nobody got time for that.

Je zou kunnen controleren op een optionele initiële apostrof?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
WHERE place LIKE '^\'?<zoekterm>'

Waar <zoekterm> de ingetoetste zoekterm is.

Maar eigenlijk heb je helemaal geen speciale modificaties nodig als je gewoon meerdere (correcte) schrijfwijzen voor een plaatsnaam hebt die vervolgens één (fysieke) plaats produceren. Misschien is dat een betere oplossing dan een complete custom regexp voor dit doel.
 
- Ariën -
Beheerder

- Ariën -

06/11/2019 23:55:47
Quote Anchor link
Ik zie inderdaad dat de NS API ook Synoniemen toestaan waar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"Hertogenbosch (\u0027s)", "Den Bosch"
uitrolt. Ik ga eens kijken hoe ik dit erin ga integreren.
 



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.