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

如何在Postgres中通过Node.js查询并更新表内匹配特定关键词的记录

Postgres字段模糊匹配及更新解决方案

核心匹配逻辑

Postgres实现不区分大小写的字段内容匹配有两种常用方案:

  • 使用ILIKE运算符(不区分大小写的LIKE匹配),配合通配符%匹配任意字符,animal ILIKE '%dog%'即可匹配所有animal字段包含dog、Dog、DOG等任意大小写组合的记录
  • 使用正则匹配运算符~*(不区分大小写的正则匹配),animal ~* 'dog'可以实现和上述ILIKE完全相同的效果

更新操作SQL语句

要将匹配到的记录的scary字段设为yes,使用UPDATE语句即可:

UPDATE petlist
SET scary = 'yes'
WHERE animal ILIKE '%dog%';
-- 如果仅需要修改原来scary为no的记录,增加条件即可
-- UPDATE petlist SET scary = 'yes' WHERE animal ILIKE '%dog%' AND scary = 'no';

对应Node.js实现代码

参数化查询时注意把通配符%放在参数值中,避免SQL注入风险:

app.get('/update_dog_scary', (req, res) => {
  pool.query(
    "UPDATE petlist SET scary = 'yes' WHERE animal ILIKE $1",
    ['%dog%'],
    (error, results) => {
      if (error) {
        console.log("更新失败")
        throw error
      }
      // results.rowCount返回被修改的记录条数
      res.status(200).json({
        updatedCount: results.rowCount
      })
    }
  )
});

测试匹配结果

如果需要先验证匹配的记录是否正确,可以先执行查询语句确认:

SELECT * FROM petlist WHERE animal ILIKE '%dog%';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:06:03