Tag: mysql

从MySql中的不同表中获取父和子logging(一对多)

我有一个父表,称为订单和order_items的子表。 我需要获取每个订单的客户订单和相应的订单项目。 以下是架构: 命令: Id | Order_date | Order_value ——————————- 1234 | 2016-12-12 | 700.00 订单项目: Id | ProductId | OrderId —————————- 8847 | shirt_blue | 1234 8848 | shirt_red | 1234 我需要JSON的最终结果如下所示: { id: '1234', order_date: '2016-12-12', order_value: 700.00, Items: [ {id: '8847', productid: 'shirt_blue' }, {id: '8848', productid: 'shirt_red' } ] } 什么是从MySql获取这些logging的最干净和最快的方式? […]

针对where条件问题的子查询

我不知道如何更好地说出这个名字或者说这个词,这会导致我的search被扭曲。 我有这个声明,这是有效的。 SELECT username , ip FROM database.users WHERE ip = (SELECT ip FROM database.users_chat_history WHERE username = ? limit 1); 但是,我需要这样的东西,这是不允许的: SELECT username , ip FROM database.users WHERE ip = (SELECT ip , posted_at FROM database.users_chat_history WHERE username = ? group by posted_at desc limit 1); 错误:ER_OPERAND_COLUMNS:操作数应该包含1列(s) 原因是我需要它来抓取最新的/最近的一排进行search时,与第一个,这不是这样做,这是造成问题。 第二个查询,我只需要该语句的ip工作,但我需要它通过posted_at降序分组,因此它抓住最新的职位。 编辑:内部查询的数据库示例:

Lambda从MySQL RDS获取数据,但超时

我正在使用Lambda连接到RDS与VPC和正常工作。 我可以成功从MySQL获取数据,但Lambda会超时。 CloudWatch日志: 2017-02-15T18:56:18.609Z [RowDataPacket {userInfo:'xxx'}] END RequestId:xxx REPORT RequestId:xxx持续时间:300001.69 ms计费时间:300000 ms内存大小:512 MB使用的最大内存:22 MB 2017-02-15T19:01:18.306Z xxx任务在300.00秒后超时 Handle.js db.getPersonInfo("xxx", function (err, result) { console.log(result); const response = { statusCode: 200, body: JSON.stringify({ message: 'test', input: event, }), }; callback(null, response); }); DB.js var getPersonInfo = function(userId, callback){ pool.getConnection(function(err, connection){ var sql = 'SELECT userInfo FROM user […]

NodeJS UTF8string显示为? 而不是表情符号

我有一个MySQL的行中的值“testing”,并有一个赞赏表情符号: 但是,当我从数据库中检索这个值,我得到这个输出在控制台中: 我能做些什么来使表情符号在NodeJS中工作? database.query({ sql: "SELECT * FROM messages ORDER BY timestamp LIMIT 250" }, function(error, results) { if (error) { errorLog("MySQL error: " + error.code); } else { var messages = []; results.forEach(function(result) { console.log("pushing with msg " + result.message); messages.push({userID: String(result.sender), name: String(result.senderName), message: String(result.message)}); }); } });

如何使用nodejs将本地sql文件转换为json

我想将一个本地的sql文件(backup.mysql,大约50MB)转换成节点中的json格式,我在一些插件上search了一下,但没有运气,大多数需要一个sql server来转换数据。 任何读者或插件可以将一个SQL文件转换为JSON吗? 谢谢! 这是我的SQL文件的样子: INSERT INTO `field_data_body` VALUES ('node','post','0','7112','1942','und','0','<p style="text-align: ce… <– 14269 lines like this. 我想在nodejs中将sql转换为json: _fs.readFile( _path.in[_i], _encode, ( _err, _result ) => { if( _err ) c.log( '$fs.readFile(), ' + _err ); else { _result = _schema + '=' + JSON.stringify( _result, null, 4 ); //<– what should i do with […]

比较和匹配2个CSV文件

我有2个文件(两个文件都是> 1,000,000行): 第一个文件只包含一个md5散列 第二个文件包含md5; emailadress 现在我必须比较这两个文件,如果md5哈希是相同的 – >写在一个单独的文件emailadress。 我尝试了与MySQL和join SELECT `email` FROM `intern` INNER JOIN `extern` ON `intern`.`md5` = `extern`.`md5` 并阅读2 csv并比较它在2个循环。 的NodeJS: fs.readFile('public/md5-data/reachadout.csv', (err, internFile) => { fs.readFile('public/md5-data/customer.csv', (err, externFile) => { var internLines = internFile.toString().split('\n'); var externLines = externFile.toString().split('\n'); internLines.forEach(function(iLine){ var internCells = iLine.split(';'); if(externLines.indexOf(internCells[0]) > -1){ fs.appendFileSync('public/md5-data/blacklist.csv', internCells[1] + '\n'); } }) […]

MySQL操作数应该包含3列(s)

let ids = [100,200,300] let scond_ids = [100,200,300] let name = ["a","b","c"] connection.query("SELECT * FROM table_name WHERE (id,second_id,name) in ((?),(?),(?))", [ids,second_ids,name], (err,result,field) => { if(err)console.log(err) }); 操作数应该包含3列(s) 我得到这个错误,当我这样做node.js请告诉我如何修复!

在查询中join限制和偏移不正确的位置

我在nodeJs中使用了sequelize,我有这样的代码: Time_Sheet_Details.findAll({ include: [ { model: timesheetNotesSubcon, required: false, attributes:["note","file_name", "id", "working_hrs", "timestamp", "has_screenshot", "notes_category"] }, { model: Timesheet, attributes:["id","leads_id","userid"], include:[ { model: Lead_Info, attributes:["id","fname","lname","email","hiring_coordinator_id","status"], where: { hiring_coordinator_id : 326}, include:[{ model: adminInfoSchema, required: false, attributes:["admin_id","admin_fname", "admin_lname", "admin_email", "signature_contact_nos", "signature_company"], }] }, {model:Personal_Info,attributes:["userid","fname","lname","email"]} ], }], where: { reference_date: filters.reference_date }, order:[ ["id","DESC"] ], offset:((1-1)*30), limit […]

使用Sequelize.jsjoin特定的列

我正在尝试使用Sequelize.js在特定列上join一些表格。 到目前为止,我的代码是这样的: table_1.findall({ include: [{ model: table_2 attributes: ['id', 'another_id'] include: [{ model: table_3 required: true attributes: ['time'] }] }] }) 每个表的主键都是“id”。 这似乎等同于下面的SQL(为了简洁起见,我显示了SELECT *,因为这不是这个问题的焦点): SELECT * FROM table_1 as t1 LEFT OUTER JOIN table_2 as t2 ON t1.id = t2.t1_id INNER JOIN table_3 as t3 ON t2.id = t3.t2_id 我想有这样的东西: SELECT * FROM table_1 as […]

res.send()在function代码在节点js中执行之前执行

我是节点js的新手。 在我的应用程序中,我正在查询MySql数据库并使用节点j处理和查看处理结果。 如果我的查询返回空数据,然后我做另一个查询,并执行该过程。 但是我的res.send(finaldate)代码在function过程完成之前就被执行了。 如何解决这个问题。 res.send(finaldata)在“do require stuff for finaldata”之前执行。 var finaldata ={}; //first query var result = connection.query('myquery', function(err, data_rows){ if(!err){ //second //doing one more Query for some other records from DB (second query) connection.query('myquery', function(err, rows, fields){ if(0 < rows.length){ finaldata = //do require stuff for finaldata } else{ //third //do the second […]