Moin,
ich habe auf dem
MySql-Server eine Function erstellt, um bestimmte Zeichen in einem String durch andere Zeichen zu ersetzen.
Ich frage ich mich, ob man da noch irgendwie etwas mehr Geschwindigkeit rausholen könnte? Es geht mir dabei um die Ersetzung von Polnischen Akzenten um den Buchstaben ohne Akzent.
So sieht die Function momentan aus:
Code:
CREATE DEFINER=`root`@`
localhost` FUNCTION `normalize_str`(AStr VarChar(2000)) RETURNS varchar(2000) CHARSET utf8
BEGIN
declare _withAccents VarChar(200) default 'ąĆćꣳńÓ󌜏źŻż';
declare _withoutAccents VarChar(200) default 'aCceLlnOoSsZzZz';
declare _length integer default length(_withAccents);
declare _i integer default 1;
while (_i <= _length) do
set AStr = Replace(AStr, substring(_withaccents, _i, 1), substring(_withoutaccents, _i, 1));
set _i = _i + 1;
end while;
RETURN AStr;
END
Es wird ja für jedes Sonderzeichen ein Replace ausgelöst. Könnte man das evtl. eleganter lösen?
Danke!
Edit: Das Forum stellt die Sonderzeichen in meinem Quelltext nicht richtig dar. In meiner Function stehen natürlich nicht die &#-Sachen, sondern wirklich das entsprechende Sonderzeichen.