어허

NodeJS mysql, query WHERE 에 array 넣어 검색하기 본문

개발/Node.JS

NodeJS mysql, query WHERE 에 array 넣어 검색하기

AKDK 2017. 10. 19. 18:58
728x90


NodeJS 에서 mysql 모듈을 이용할때 WHERE 에 string으로 된. 배열을 넣고싶다


기본적인 쿼리는


SELECT * FROM 'table' WHERE 'id' in (1, 2, 3)


이렇게 하면 되고


코드로는


const db = require('../../database');

let fs = require('fs');


let listArray = [

"111@abc.co.kr",

"222@abc.co.kr",

"333@abc.co.kr"

];


/* string으로 변환 */

for (var i in listArray) {

    listArray[i] = JSON.stringify(listArray[i]);

}


var sql = "\n";

      sql += "SELECT *                                 \n";

      sql += "    FROM DEVICE                          \n";

      sql += "    WHERE JID IN (";

      sql += listArray.join();

      sql += ")";


let exec = db.connection.query(sql, function (err, data) {

            if (err) throw err;

});



위의 stringify 로 스트링 변환을 따로 해주지 않으면 쿼리에


WHERE JID IN (111@abc.co.kr, 222@abc.co.kr, 333@abc.co.kr)


이렇게 들어가서 에러발생


스트링 치환을 해 주어야


WHERE JID IN ("111@abc.co.kr", "222@abc.co.kr", "333@abc.co.kr")


이렇게 예쁘게 잘 들어가짐.


728x90
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
공유하기 링크
Comments