hallo,
Ich versuche gerade für eine internetseite eine suche in einer db zu bauen, und habe dafür libmysqllevenshtein installiert. (als UDF)
das funktioniert auch alles super. solange ich nur ein feld mit levenshtein durchsuchen möchte.
ich muss jetzt aber 3 felder der gleichen tabelle durchsuchen und das ist dann schon ein performance-problem.
also dachte ich, man kann doch selects bestimmt irgendwie geschickt verschachteln und 3 felder zu einem zusammenfügen und auf das neue dann levenshtein anwenden.
ich hoffe ihr versteht mich.
also das hier geht mit einem feld:
SELECT feld
FROM tabelle
WHERE
LEVENSHTEIN(
(feld1, 'vgl-string') <10
ORDER BY LEVENSHTEIN(feld1, 'vgl-string')
und ich dachte jetzt an sowas:
SELECT feld, concat(feld1,feld2,feld3) AS suchfeld
FROM tabelle
WHERE
LEVENSHTEIN(
(suchfeld, 'vgl-string') <10
ORDER BY LEVENSHTEIN(suchfeld, 'vgl-string')
leider geht das aber nicht, ich denke weil "suchfeld" erst bei der abfrage entsteht und man das dann noch nicht direkt in ner UDF benutzen kann.
könnt ihr mir helfen?
danke
Ich versuche gerade für eine internetseite eine suche in einer db zu bauen, und habe dafür libmysqllevenshtein installiert. (als UDF)
das funktioniert auch alles super. solange ich nur ein feld mit levenshtein durchsuchen möchte.
ich muss jetzt aber 3 felder der gleichen tabelle durchsuchen und das ist dann schon ein performance-problem.
also dachte ich, man kann doch selects bestimmt irgendwie geschickt verschachteln und 3 felder zu einem zusammenfügen und auf das neue dann levenshtein anwenden.
ich hoffe ihr versteht mich.
also das hier geht mit einem feld:
SELECT feld
FROM tabelle
WHERE
LEVENSHTEIN(
(feld1, 'vgl-string') <10
ORDER BY LEVENSHTEIN(feld1, 'vgl-string')
und ich dachte jetzt an sowas:
SELECT feld, concat(feld1,feld2,feld3) AS suchfeld
FROM tabelle
WHERE
LEVENSHTEIN(
(suchfeld, 'vgl-string') <10
ORDER BY LEVENSHTEIN(suchfeld, 'vgl-string')
leider geht das aber nicht, ich denke weil "suchfeld" erst bei der abfrage entsteht und man das dann noch nicht direkt in ner UDF benutzen kann.
könnt ihr mir helfen?
danke
Comment