mysql - nodejs 表达 mysql 查询 'SET @' XXX''

标签 mysql node.js express parameters routes

我正在开发nodejs/express 应用程序。在我的 route ,我需要从 MySQL 数据库查询数据。对于包含参数的查询,它工作得很好。 任何不带参数的查询都会按预期工作:

SELECT * FROM table WHERE col = 'b'

但是下面的返回undefined

 SET @a = 'b'
 SELECT * FROM table where col = @a

我在单独的函数中生成查询字符串(不确定这是否有任何区别)。 任何帮助将不胜感激。

最佳答案

我认为您可能正在寻找 ? 占位符方法,如

中所述

https://www.w3schools.com/nodejs/nodejs_mysql_where.asp

var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE address = ?';
con.query(sql, [adr], function (err, result) {
  if (err) throw err;
  console.log(result);
});

还有多个占位符,以数组形式传入:

var name = 'Amy';
var adr = 'Mountain 21';
var sql = 'SELECT * FROM customers WHERE name = ? OR address = ?';
con.query(sql, [name, adr], function (err, result) {
  if (err) throw err;
  console.log(result);
});

关于mysql - nodejs 表达 mysql 查询 'SET @' XXX'',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53973840/

相关文章:

php - MySQL 和 php 中的唯一文本字段

java - jTable连接MySQL按钮报错

node.js - Grunt 服务错误,运行 "compass:server"( compass )任务错误 : invalid option: --no-relative-assets

mysql - Node.js 在 MySQL 查询上崩溃

node.js - 收到错误的请求而不是完整的错误消息

javascript - 从服务器获取数据时挂载钩子(Hook)(Promise/async)出错

mysql - Spark : com. mysql.jdbc.Driver 不允许创建表作为选择

mysql - 仅当 p.user 是页面创建者时,如何首先显示 block = 1 的成员?

node.js - 为 npm run 创建别名

javascript - Node 中的异步方法没有收到错误