特定の文字列を URL で使用できるバージョンに解析する MySQL 関数を作成しようとしています。そのため、いくつかの特殊文字を削除する必要があり、ループを使用してコードをシンプルに保ち、文字を指定する必要がないようにしています。
私の現在のコードは次のとおりです。
DECLARE parsedString VARCHAR(255);
# convert to low chars
SET parsedString = CONVERT(paramString USING latin1);
SET parsedString = LOWER(parsedString);
# replace chars with A
SET @x = 223;
charReplaceA: WHILE @x <= 229 DO
SET @x = @x + 1;
SET parsedString = REPLACE (parsedString, CHAR(@x USING ASCII), 'a');
END WHILE charReplaceA;
# convert to utf8 and return
RETURN CONVERT(parsedString USING utf8);
コードを使用しようとしても機能しません。どういうわけか、CHAR(@x USING ASCII) 部分を認識しません。
SELECT urlParser('aäeucn');
戻り値
aäeucn
コードを次のように変更すると
SET parsedString = REPLACE (parsedString, 'ä', 'a');
それはどういうわけか機能して戻ります
aaeucn
CHAR() で REPLACE() を使用する方法を知っている人はいますか? 可能なキャラクターを指定したくありません。