Typeorm:使用参数执行原始查询

Typeorm: Execute raw query with parameters

我正在尝试使用参数在 typeorm 中执行原始查询 我尝试了以下查询:

insert into data(id, name, gender) values(?, ?,?)
insert into data(id, name, gender) values(, , )
insert into data(id, name, gender) values(:id, :name, :gender)

typeorm 代码是:

import { getManager } from 'typeorm';
await getManager().query(query, [1, 'test', 'male']);

怎么了?还有其他办法吗?

问题已解决link。这取决于底层数据库使用哪种语法。

https://github.com/typeorm/typeorm/issues/881

对于 oracle,你可以像我这样使用这样的东西:

const querySingleValue = SELECT * FROM TABLE1 WHERE name in (:param) ;

字符串值:

getManager().query(querySingleValue,[param]);

正如@ashutosh所说,这取决于你的数据库驱动程序

对于 mysql/mysql2 你应该使用 ? 作为占位符。例如

manager.query('SELECT id FROM foos WHERE createdAt > ? AND id > ?', [new Date(), 3])