如何使用 postgres/nodejs 在表中查找特定内容
Posted
技术标签:
【中文标题】如何使用 postgres/nodejs 在表中查找特定内容【英文标题】:How to look for a specific thing within a table with postgres/nodejs 【发布时间】:2022-01-02 11:48:11 【问题描述】:我目前正在使用 postgres,通过节点服务器访问它。
我对如何在表格中搜索特定术语以进行更改感到困惑。我知道我可以选择某些项目,但我不知道如何在项目中进行搜索。
说我的桌子是:
animal | cuddly | scary |
---|---|---|
Medium Dog | yes | no |
Small Dog | yes | no |
Fluffy Dog | yes | no |
Big Dog | yes | yes |
Big Cat | no | yes |
Small Fish | no | no |
突然,我被狗咬了,现在我想把所有包含“狗|狗”的东西都改成可怕的:是的。
我真的找不到任何好的资源来创建这个函数。也许我忽略了一些东西。
现在我正在使用这样的简单 SELECT:
app.get('/update/:type', (req, res) =>
pool.query("SELECT animal FROM petlist WHERE scary = 'no' AND animal = $1",[req.params.client],
(error, results) =>
if (error)
console.log("I selected dog, but I can't see the specific types of dog!")
throw error
console.log(results.rows);
res.status(200).json(results.rows)
)
);
【问题讨论】:
感谢亨利的编辑,很抱歉把它放在一个 sn-p 盒子里! 【参考方案1】:我不知道您的模糊语言 (nodejs),但您正在寻找的 Postgres 谓词将是 ilike 或列 animal
的大小写转换。所以
select animal
from petlist
where scary = 'no'
and animal ilike '%dog';
-- or if nodejs complains about ilike then
select animal
from petlist
where scary = 'no'
and lower(animal) like '%dog';
也许是这样的:
app.get('/update/:type', (req, res) =>
pool.query("SELECT animal FROM petlist WHERE scary = 'no' AND animal ILIKE $1,[req.params.client],
(error, results) =>
if (error)
console.log("I selected dog, but I can't see the specific types of dog!")
throw error
console.log(results.rows);
res.status(200).json(results.rows)
)
);
将 req.params.client 设置为字符串 %dog。
【讨论】:
这太棒了!非常感谢,我不知道ILIKE。让 nodejs 通过撇号和百分比标记的正确术语有点痛苦,但我最终到达了那里并且它完美地工作。再次感谢您!以上是关于如何使用 postgres/nodejs 在表中查找特定内容的主要内容,如果未能解决你的问题,请参考以下文章