Nimm doch einfach Jellys Vorschlag und erstelle dir in deiner
MySQL DB eine UDF (Userdefined Function).
Der (my)
SQL Server erledigt die Zeichenersetzung flink während des Selects mit. Einfacher gehts doch garnicht. Zudem erschlägt man alle Sonderfälle auf einmal (Groß-Kleinschreibung, Umlaute,'ß'-'ss') und braucht nicht hunterdt IF's und POS(bla) im Delphi-Code verbauen.
Hier ein Beispiel in
MSSQL Syntax.
Den Code kannst du mit einem kurzen Blick ins
MySQL-Handbuch innerhalb weniger Minuten für
MySQL anpassen.
SQL-Code:
CREATE Function ReplaceSpecialChars
@InputParam VARCHAR(4000) -- ein Eingabeparameter an den du deinen Suchbegriff übergibst
RETURNS VarChar(4000) -- Die Funktion liefert Varchar zurück
AS
BEGIN
DECLARE @TMP VARCHAR(4000) -- eine Temporäre Variable deklarieren
SET @TMP = LOWER(@InputParam) -- Suchbegriff als LowerCase in @TMP einlesen
SET @TMP = REPLACE(@TMP,'ß','ss') -- gewünschte Zeichen ersetzen
SET @TMP = REPLACE(@TMP,'ä','ae')
SET @TMP = REPLACE(@TMP,'ö','oe')
SET @TMP = REPLACE(@TMP,'ü','ue')
RETURN @TMP -- die fertige Zeichenkette aus Result zurückgeben
END
Verwendung :
SQL-Code:
SELECT Vorname,Nachname FROM Personal WHERE dbo.ReplaceSpecialChars(Nachname) = LOWER(@Suchbegriff)
Falls du die Funktion sehr häufig für ein und die selben Feler bestimmter Tabellen benutzt, kannst du in der Tabelle auch flink für jedes (häufig zum suchen verwendete) Feld ein berechnetes Feld hinzufügen. Als Formel für das berechnete Feld nimmst du in diesem Fall auch "dbo.ReplaceSpecialChars(<Feldname>)".
Schöne Grüße,
Jens