본문으로 바로가기

Node.js(MySQL) - Chapter 05. Where

category Front-End/- Node.js 2019. 10. 8. 16:24

1. Select With a Filter

테이블에서 레코드를 선택할 때, "WHERE" 구문을 사용하여 레코드를 필터링 할 수 있다.

var mysql = require('mysql');

var con = createConntection({
	host : "localhost",
	user : "yourname",
	password : "yourpassword",
	database : "mydb"
});

con.connect(function(err) {
	if(err) throw err;
	con.query("SELECT * FROM customers WHERE address = 'Park Lane 38'", function (err, result) {
		if(err) throw err;
		console.log(result);
	});
});

실행하면 결과는 다음과 같다.

[
  { id: 11, name: 'Ben', address: 'Park Lane 38'}
]

 

2. Wildcard Characters

글자나 문구를 가지고 시작, 포함, 끝 부분을 포함하는 "%" 를 사용할 수 있다.

 

3. Escaping Query Values

사용자의 의해 제공되어지는 쿼리 값이 변할 때, "escape"를 사용하여, SQL 인젝션을 막을 수 있다.

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

"?"를 사용할 수도 있는데, 이럴 경우, query 메소드의 2번쨰 파라미터에 쓴다.

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 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);
});