Javascript 将数组中的键值对插入SQL查询字符串
我有以下数组代码:Javascript 将数组中的键值对插入SQL查询字符串,javascript,sql,node.js,Javascript,Sql,Node.js,我有以下数组代码: const dataToset = [ { key: 'key1', value: "some data" }, { key: 'key2', value: 37 }, ]; await db.query(` UPDATE some_table SET ${dataToset.map(data => `${data.key} = ${data.value}`)} WHERE id ${id}`); 结果查询是下一步:upda
const dataToset = [
{ key: 'key1', value: "some data" },
{ key: 'key2', value: 37 },
];
await db.query(`
UPDATE some_table
SET ${dataToset.map(data => `${data.key} = ${data.value}`)}
WHERE id ${id}`);
结果查询是下一步:updatesome_table SET key1=some data,key2=37,其中id=1
它失败了,因为一些数据应该作为字符串传递。
如何获取有效查询:更新某些表集key1=“某些数据”,key2=37,其中id=1
p、 我得到了下一个错误:“数据”附近的语法错误除了语法错误(它必须是,其中id=1
),我会使用.join(',')
进行显式数组到字符串的转换,并稍微更改模板字符串,注意(仅此)字符串值应括在单引号中:
const dataToset=[
{key:'key1',value:'some data},
{key:'key2',值:37},
],
id=1
查询=`
更新一些表
设置${
数据集
.map({key,value})=>
值的类型=='字符串'?
键+“=”+值+“”:
键+'='+值)
.join(“,”)
}
其中id=${id}
`
console.log(查询)
。作为控制台包装{min height:100%;}
不是吗其中id=1
?不,在这里修复了它。