sql - Knex + Postgresql + node - 如何为选定的列调用 postgresql 函数

标签 sql node.js postgresql express knex.js

我想检查记录是否存在于 postgresql 中,并且需要 bool 值的结果。

注意: 我知道 if else 检查有一些简单的方法,但我想要的是我列出的查询在 knex 中的表示。我也知道这很复杂,但只想学习。

我知道查询,你可以在下面看到,

select exists(select 1 from test where id = XYZ);

如何使用 knex 编写此 postgresql 查询?

我试过这种方法,但它不起作用。

knex.raw(`SELECT exists(${knex(TABLE_NAME).where(CONDITIONS).select('1').toString()})`)

最佳答案

您不需要在数据库端进行 bool 值转换(不会有任何性能差异):

knex('test').select('id').where('id', 'XYZ').then(results => results.length > 0);

如果您真的更喜欢选择 1 而不是 id,这也适用:

knex('test').select(knex.raw('1')).where('id', 'XYZ').then(results => results.length > 0);

Tim 的回答也很好,更准确地给出了您想要做的事情,但有点复杂。

关于sql - Knex + Postgresql + node - 如何为选定的列调用 postgresql 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50095332/

相关文章:

MySQL 联合对 select 语句进行单独排序而不是组合

sql - MySQL中如何使用GROUP BY连接字符串?

mysql - 计算类别 A 和 B 中的项目 (MySQL)

sql - 将 Access 数据库转换为 SQL

node.js - Electron 重建 grpc 构建失败

node.js - 尝试使用 npm i bcrypt 时未安装 bcrypt

postgresql - Liquibase/Spring Boot/Postgres - 架构名称不起作用

node.js - npm 报告 "requires (one version)' 但会加载(另一个版本)”

postgresql - heroku postgres::每个计划允许多少个数据库(生产:crane)?

postgresql - haskell postgresql-简单不兼容类型_int8和Int64(和整数)