You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将PostgreSQL自定义函数patinde重构适配MySQL技术问询

适配为MySQL版本的函数代码

以下是将你提供的PostgreSQL自定义函数重构后的MySQL版本:

CREATE FUNCTION patinde(pattern VARCHAR(12), expression VARCHAR(12))
RETURNS INT
DETERMINISTIC
BEGIN
    DECLARE regex_pattern VARCHAR(255);
    -- 将PostgreSQL LIKE模式转换为正则表达式
    SET regex_pattern = REPLACE(REPLACE(TRIM(BOTH '%' FROM pattern), '%', '.*?'), '_', '.');
    -- 添加括号确保匹配完整转换后的模式
    SET regex_pattern = CONCAT('(', regex_pattern, ')');
    
    RETURN COALESCE(STRPOS(expression, REGEXP_SUBSTR(expression, regex_pattern)), 0);
END;

关键适配说明:

  • 函数语法:MySQL自定义函数需使用BEGIN...END代码块,参数直接使用名称而非$1/$2占位符
  • 确定性标记:用DETERMINISTIC替代PostgreSQL的IMMUTABLE,两者语义一致,均表示输入相同则输出固定
  • 正则匹配逻辑:MySQL中用REGEXP_SUBSTR直接获取第一个匹配子串,替代PostgreSQL里REGEXP_LIKE结合数组取匹配组的写法
  • 通用函数兼容:TRIM、REPLACE、COALESCE、STRPOS这些函数在MySQL和PostgreSQL中的行为基本一致,无需大幅修改

内容的提问来源于stack exchange,提问作者Efrain Mejia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:44:16