问题描述
const persons = await knex('people').select('id','name');
例如
{id:1,name: 'Tom'}
应该返回
{id:1,name: 'Dr. Tom'}
我如何在knex js中做到这一点?
解决方法
我相信您可以使用JS map
在内存中轻松地完成此操作,但是显然您希望在数据库级别执行此操作。
基本上,您需要以下查询:
select CONCAT('Dr. ',people.name) as 'name',people.id as 'id' from people;
(在w3schools在线提琴手中经过测试)
因此,我们可以有效地尝试以下操作(基于http://knexjs.org/的标识符语法):
knex({ people: 'people' })
.select({
id: 'people.id',name: 'CONCAT("Dr. ",people.name)'
})
但是我不确定knex是否可以替代它。
但是,问题是,就我而言,并非所有SQL方言都支持CONCAT
。