javascript - 使用 JS 对象作为 mySQL 查询字符串的值

标签 javascript mysql node.js

我正在使用池在nodejs上查询mySQL。我们正在这样做,并且运行良好。

let values = [1, 2, 3];
DB.pool.query('SELECT * ROM table_name WHERE col1 = ? AND col2 = ? AND col3 = ?' , values, ( err, rows ) => {
    //Do something
});

正如您所注意到的,where 值位于数组中,我们在查询字符串上使用 ? 来插入这些值。问题是,在复杂的查询上,有很多值(value)。

有没有办法使用对象来代替?

类似于:

let values = {col1: 1, col1: 2, col1: 3};

查询字符串如下:

SELECT * ROM table_name WHERE col1 = :col1 AND col2 = :col2 AND col3 = :col3

如有任何帮助,我们将不胜感激。

最佳答案

您可能正在寻找类似 knex 的查询生成器或slonik .

您可以编写自己的实用函数来帮助将字符串插入查询中,也许可以使用 JS Template Literals ,但是已经存在像上面这样的包来帮助您做到这一点。

最终,答案是“并非如此”。 SQL 查询本质上是一个字符串。要么您将使用为您构建查询的客户端/库(这就是您已经使用的任何客户端正在做的事情,让您传入一个值数组以插入到字符串中),要么您是以某种方式自己手动创建字符串。

关于javascript - 使用 JS 对象作为 mySQL 查询字符串的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60500917/

相关文章:

javascript - 谷歌地图 : Change infoWindow's Frame

javascript - 使用 jQuery 和 POST 形成值 - 单个复选框

javascript - Chart.js - 在不使用工具提示的情况下向气泡图元素添加文本/标签?

C# MySQL 错误 : Keyword not supported

node.js - 从后端返回多个查询

javascript - 使用 json_encode() 从 PHP 返回 Json 对象,但我的 javascript 中的 json 对象无效

javascript - 在 iframe 中打开 php 并将数据提取到变量中

php - #1136 - 列数与值数不匹配?

node.js - 如何使用node-tap将调试标志传递给 Node ?

javascript - node.js reSTLer 调用的多个响应