Toon posts:

[PHP/MySQL] Zoeken met like en speciale tekens

Pagina: 1
Acties:

Onderwerpen

Vraag


  • mkleinman
  • Registratie: Oktober 2001
  • Laatst online: 10:04

mkleinman

4.5kWp, 8.4GJ Zb/CV, WTW, ELGA

Topicstarter
Ik ben bezig met een hobbyproject waar in een MySQL database namen staan met speciale tekens zoals:

Beurré van den Ham, Marie Joseph d'Othée, Åkerö etc. In mijn zoekquery gebruik ik een LIKE: fbn.naam LIKE ? . Bij de inputparameters zet ik er een % voor en achter.

Dit geheel werkt an sich prima. Als ik zoek op "Beur" dan vind ik alle namen die daarmee beginnen. Echter als ik "Beurre" in typ ( dus zonder accent aigu ) dan wordt er niets gevonden. Wat logisch is aangezien Beurre != Beurré .

Ik heb SOUNDS en SOUNDEX geprobeerd. Dit werkt prima als je zoekt op de volledige naam waarbij Beurré van der Ham gelijk is aan Beurre van der Ham. Alleen werkt dit niet met het zoeken van delen in een string.

Nu zou ik in de tabel een extra veld kunnen maken die alle speciale tekens weg filtert en dan die kolom gebruiken in de LIKE maar dan is de eerste vraag hoe ik in PHP of MYSQL al die tekens weg kan filteren.

En ik hoop eigenlijk op een iets elegantere oplossing dan dit. Iemand een suggestie hoe ik dit in PHP of in de MySQL query kan oplossen?

Duurzame nerd. Veel comfort en weinig verbruiken. Zuinig aan doen voor de toekomst.

Beste antwoord (via mkleinman op 18-11-2021 18:29)


  • RobIII
  • Registratie: December 2001
  • Laatst online: 11:03

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Je moet kijken naar je collation. Je wil een accent-insensitive collation gebruiken.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij

Alle reacties


Acties:
  • Beste antwoord
  • +1Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 11:03

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Je moet kijken naar je collation. Je wil een accent-insensitive collation gebruiken.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 10:52

DataGhost

iPL dev

Dit is 100% afhankelijk van je doeltalen en namen maar niet onmogelijk. Collations zijn daarvoor bedoeld, die kan je op verschillende plekken inzetten, bijv. in de tabel of zelfs een kolom, of juist in de query, allemaal met hun eigen voor- en nadelen.

  • mkleinman
  • Registratie: Oktober 2001
  • Laatst online: 10:04

mkleinman

4.5kWp, 8.4GJ Zb/CV, WTW, ELGA

Topicstarter
RobIII schreef op donderdag 18 november 2021 @ 18:08:
Je moet kijken naar je collation. Je wil een accent-insensitive collation gebruiken.
Dat was inderdaad de oplossing! Tnx!

Duurzame nerd. Veel comfort en weinig verbruiken. Zuinig aan doen voor de toekomst.


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Nog een gratis negatief antwoord: SOUNDEX is bijna nooit de oplossing. Zelfs niet per se voor fonetische vraagstukken. ;)
Soundex voor filters is een beetje als rot13 bij encryptie: Standaard beschikbaar en het lijkt interessant voor beginners, maar leidt uiteindelijk enkel tot prutswerk.

{signature}




Google Pixel 7 Sony WH-1000XM5 Apple iPhone 14 Samsung Galaxy Watch5, 44mm Sonic Frontiers Samsung Galaxy Z Fold4 Insta360 X3 Nintendo Switch Lite

Tweakers is samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer onderdeel van DPG Media B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee