как заменить несколько слов одновременно в postgresql - PullRequest
1 голос
/ 12 мая 2011

для замены нескольких слов, я использую циклическое прохождение всех кандидатов и заменяю одно на другое. есть ли лучший способ?

CREATE OR REPLACE FUNCTION "myReplace"(text, _varchar, _varchar) RETURNS "pg_catalog"."text" AS 
$BODY$
DECLARE
    i INT;
    result TEXT;
BEGIN
    result = $1;
    FOR i IN 1 .. ARRAY_LENGTH( $2, 1 ) LOOP
        result = REPLACE( result, $2[ i ], $3[ i ] );
    END LOOP;

    RETURN RESULT;
END
$BODY$
LANGUAGE 'plpgsql';

1 Ответ

0 голосов
/ 12 мая 2011

Помимо того, что вы сделаете его СТАБИЛЬНЫМ и СТРОГОМ и переключитесь на использование pl / perl или C, вы не сможете оптимизировать его, чтобы сделать это еще быстрее.

...