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

如何在pgAdmin的PostgreSQL函数中正确使用LIKE操作符

问题解决方法

1. 先修复现有代码的语法错误

你提供的代码存在多处多余的冗余尾逗号,会导致函数运行异常:

  • 函数参数定义末尾、返回表结构定义末尾、SELECT查询字段列表末尾都存在多余的逗号,需要删除。

2. 修正LIKE操作符的使用逻辑

你当前的写法"ProfessorName" LIKE ($2) 要求传入的参数自带通配符才会生效,对接搜索栏的场景下,用户输入的关键词通常需要手动拼接通配符才能实现模糊匹配效果,%是LIKE语法中用于匹配任意长度任意字符的通配符。

3. 修正后的完整函数代码

CREATE OR REPLACE FUNCTION public.school_function(
    student text DEFAULT NULL,
    professor text DEFAULT NULL
)
RETURNS TABLE(
    "StudentName" text, 
    "StudentID" bigint,
    "ProfessorName" text,
    "Subject" text,
    "Course" text
)
LANGUAGE 'sql'
AS $BODY$
    SELECT 
        "StudentName", 
        "StudentID",
        "ProfessorName",
        "Subject",
        "Course"
    FROM seniorHighTable
    WHERE ("StudentName" = $1 OR $1 IS NULL)
    AND ("ProfessorName" LIKE CONCAT('%', $2, '%') OR $2 IS NULL)
$BODY$;

补充适配不同搜索需求的调整说明

  • 若需要前缀匹配(搜索内容以关键词开头),将通配符拼接改为CONCAT($2, '%')
  • 若需要后缀匹配(搜索内容以关键词结尾),将通配符拼接改为CONCAT('%', $2)
  • 若需要不区分大小写的模糊匹配,将LIKE替换为ILIKE即可
  • 若搜索栏为空时传入的是空字符串而非NULL,可将$2 IS NULL修改为$2 IS NULL OR $2 = '',适配空输入返回全部数据的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:06:04