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。这取决于底层数据库使用哪种语法。
对于 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])
我正在尝试使用参数在 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。这取决于底层数据库使用哪种语法。
对于 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])