我想检查记录是否存在于 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/