sql - 如何在postgresql中一次替换多个单词

标签 sql postgresql plpgsql

为了替换多个单词,我使用循环遍历所有候选词,并逐一替换。有没有更好的办法?

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';

最佳答案

除了使其稳定和严格,并切换到使用 pl/perl 或 C 之外,没有太多优化可以使它更快。

关于sql - 如何在postgresql中一次替换多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5971422/

相关文章:

javascript - 使用 Regex 以多种方式拆分单词

sql - 选择查询不会在 Linux 脚本中给出预期结果

mysql - 查询中的减法 (SUM)

php - mysqli_fetch_assoc()期望参数1为mysqli_result,在第8行(目录)中给定的 bool 值

ruby-on-rails - 在 rails 中将部分 pg 数据库条目作为 JSON 返回

sql - PostgreSQL 如何处理多个 WHERE 子句?

windows - 从提供程序读取数据时发生错误。根据验证程序,远程证书无效

用于 UNION 大量表的 SQL 脚本

mysql - 使用 mysql 中的 select 语句替换 sql 中的空值?

postgresql - plpgsql For循环中的Select语句创建多个CSV文件