如何使用 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 在表中查找特定内容的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 sql Bulkcopy 在表中插入 datagridview 行

[转]mysql 从一个表中查数据并插入另一个表实现方法

如何使用熊猫将字典的内容存储在表中?

如何使用 psql 命令行界面在表中显示数据?

如何使用foreach在表中显示带有左连接的选择查询记录?

如何在 Oracle 11g 中使用游标在表中插入数据?