phpbar.de logo

Mailinglisten-Archive

RE: phonetische Suche
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: phonetische Suche



> -----Original Message-----
> From: Cyrill Schumacher [mailto:webmasterbhs_(at)_bluewin.de]
> Sent: Keines
> To: mysql-de_(at)_lists.4t2.com
> Subject: Re: phonetische Suche
>
[...]
>
> das ist einfach, aber leider geht es nur mit workaround,
> da php nur einen 4 char langen soundex zurückliefert...
> ich habe mir also den kompletten soundex von mysql generieren
> lassen und mit php dann den ersten buchstaben (in deinem
> fall das "H") abgeschnitten, somit habe ich dann nur
> noch eine zahlen kette, die man genial mit einer
> weiteren abfrage auf die tabelle einsetzen kann
> und somit auch in deinem fall den zweiten firmen
> namen heraus bekommt.
>
>  $sres = mysql_query("select soundex('".$sq."') as sou");
>  $sar = mysql_fetch_array($sres);
>  $mysound = eregi_replace("^[a-z]","",$sar["sou"]);
>  //echo $mysound." - ".$sar["sou"]."<hr>";
>  $sel = "select pname,rowcontent from $wtctab where
> soundex(rowcontent) like
> '%$mysound%' order by pname";
>
> noch fragen ?
>
[...]


Ja, leider...

Erst einmal vielen Dank für Deine Antwort.
Die Idee ist grundsätzlich sehr gut, funktioniert aber leider nicht so wie
sie sollte. Beispiel:

mysql> select soundex('hans Herrmann Heizungsbau GmbH');
+-------------------------------------------+
| soundex('hans Herrmann Heizungsbau GmbH') |
+-------------------------------------------+
| H52652521251                              |
+-------------------------------------------+
1 row in set (0.00 sec)

mysql> Select soundex('Karl Hermann Gmbh&Co. KG');
+-------------------------------------+
| soundex('Karl Hermann Gmbh&Co. KG') |
+-------------------------------------+
| K64652512                           |
+-------------------------------------+
1 row in set (0.05 sec)

mysql> select soundex('Herrmann');
+---------------------+
| soundex('Herrmann') |
+---------------------+
| H650                |
+---------------------+
1 row in set (0.11 sec)
>

Die 650 (ohne 'H') tauchen bei den anderen 'soundexes' gar nicht erst auf
(dort ist es 652), deshalb würde auch ein 'select firmenname from tabelle
where soundex('firmenname') like '%650%';' nicht erfolgreich sein.


Bis dann,

Matthias



---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive