繁体   English   中英

带有节点的复杂SQL查询-MySQL

[英]Complex SQL query with nodes-mysql

我在使用nodeJS和随npm添加的node-mysql packe对我的MySQL数据库运行以下SQL查询时遇到问题。

INSERT INTO locations (locationID,name,latitude,longitude)
SELECT '214777725','Bryans Road,
Maryland','38.628055556','-77.081666667'
FROM dual WHERE NOT EXISTS
(SELECT * FROM locations WHERE locationID = '214777725')

我尝试了以下代码:

var arrValues = [ -12.9747, -38.4767, 213287181, 'Salvador, Brazil' ];
var arrNames = [ 'latitude', 'longitude', 'locationID', 'name' ];
var locationID = "214777725";
if(imageData["locationID"] != null) {
    var query = "INSERT INTO locations ? ";
    query = query + " SELECT (?)";
    query = query + " FROM dual WHERE NOT EXISTS";
    query = query + " (SELECT * FROM locations WHERE locationID = ?)";
    console.log(query);
    connection.query(query, [arrNames,arrValues,locationID], function(err,res)
    {
      if(err)
      {
        console.log(err);
      }
      else
      {
        console.log("Insert-Success: " +id);
      }
    });
}

运行此控制台,将写入以下错误:

{
    code: 'ER_PARSE_ERROR',
    errno: 1064,
    sqlState: '42000',
    index: 0 
}

希望有人能帮忙。

看来您需要使用.toString();。 对您的阵列起作用。

connection.query(query, [arrNames.toString(),arrValues.toString(),locationID], function(err,res)
{ ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM