gpt4 book ai didi

postgresql - 错误 : column does not exist in PostgreSQL

转载 作者:行者123 更新时间:2023-11-29 13:52:38 26 4
gpt4 key购买 nike

尝试创建一个函数,如果 searchTerm 存在于某一列中的任何位置,该函数将返回表中的多行。 (我是 Postgres 的新手。)

 CREATE OR REPLACE FUNCTION dts_getProjects(searchTerm TEXT) RETURNS SETOF project
AS $$
SELECT credit_br AS Branch, status FROM job_project
WHERE credit_br LIKE '%'||searchTerm||'%'
$$
language 'sql';

我收到这个错误:

 ERROR:  column "searchTerm" does not exist
LINE 3: ...status FROM job_project WHERE credit_br LIKE '%'||searchTerm||'...

最佳答案

它应该像这样工作:

CREATE OR REPLACE FUNCTION dts_get_projects(_search_term text)
RETURNS SETOF job_project AS
$func$
SELECT j.*
FROM job_project j
WHERE j.credit_br ILIKE '%' || _search_term || '%'
$func$ LANGUAGE sql;

我正在使用表类型返回整行。这是安全的后备方案,因为您没有透露任何数据类型或表定义。

我还使用 ILIKE 使搜索不区分大小写(只是猜测,由您决定)。

这只会搜索 onecredit_br。您的描述听起来像是您想要搜索所有列(其中一列内的任何位置)。同样,大部分基本信息都丢失了。一种非常快速但有点脏的方法是搜索转换为 text 的整行表达式:

...
WHERE j::text ILIKE '%' || _search_term || '%';
...

相关:

旁白:
如果可以避免,请不要在 Postgres 中使用大小写混合的标识符。

不要引用函数的语言名称。这是一个标识符。

关于postgresql - 错误 : column does not exist in PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38102267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com