تصفية تحديد البيانات باستخدام الأمر"WHERE":

 تصفية تحديد البيانات باستخدام  الامر"WHERE":
عند تحديد السجلات من جدول ، يمكنك تصفية التحديد باستخدام الأمر"WHERE":
مثال اجلب البيانات بحيث يكون حقل address  يساوي "Park Lane 38":

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  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);
  });
});
احفظ الكود أعلاه في ملف بإسم "demo_db_where.js" وقم بتشغيل الملف:
C:\Users\Your Name>node demo_db_where.js
لتكون النتيجة بالشكل التالي
[
  { id: 11, name: 'Ben', address: 'Park Lane 38'}
]
أحرف البدل (بالانجليزية  Wildcard Characters)
يمكنك أيضًا تحديد السجلات التي تبدأ أو تتضمن أو تنتهي بحرف أو عبارة معينة.

استخدم حرف البدل "٪" لتمثيل حرف واحد أو أحرف متعددة:

مثال
حدد السجلات حيث يبدأ  حقل address بالحرف "S":

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers WHERE address LIKE 'S%'", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});
احفظ الكود أعلاه في ملف باسم "demo_db_where_s.js" وقم بتشغيل الملف:
C:\Users\Your Name>node demo_db_where_s.js
لتكون النتيجة بالشكل التالي
[
  { id: 8, name: 'Richard', address: 'Sky st 331'},
  { id: 14, name: 'Viola', address: 'Sideway 1633'}
]
حماية  قيم الاستعلام اذا كانت  متغيرات يرسلها المستخدم 
عندما تكون قيم الاستعلام متغيرات يرسلها المستخدم ، يجب عليك حمايتها فبل تنفيذ الاستعلام.
هذا لمنع حقن SQL ، وهو أسلوب شائع لاختراق الويب لتدمير قاعدة البيانات الخاصة بك أو إساءة استخدامها.
تحتوي الوحدة النمطية (بالانجليزية module) MySQL على دوال للتخلص و تنظيف  قيم الاستعلام:
مثال تنظيف  قيم الاستعلام باستخدام  الدالة mysql.escape ():

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "myusername",
  password: "mypassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  var adr = 'Mountain 21';
  //Escape the address value:
  var sql = 'SELECT * FROM customers WHERE address = ' + mysql.escape(adr);
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});
احفظ الكود في الاعلى في ملف بإسم "demo_db_where_escape.js" وشغل الملف
C:\Users\My Name>node demo_db_where_escape.js
لتكون النتيجة بالشكل التالي
[
  { id: 4, name: 'Hannah', address: 'Mountain 21'}
]
يمكنك أيضا استخدام؟ كعنصر نائب للقيم التي تريد الهروب منها. في هذه الحالة ، يتم إرسال المتغير كمعامل ثاني في الدالة query()  وهذا يمنحك تنظيف القيم قبل ارسالها لتنفيذ الاستعلام : 
مثال
كيفية حماية  قيم الاستعلام باستخدام العنصر النائب ؟ علامة الاستفهام  طريقة:

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "myusername",
  password: "mypassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  var adr = 'Mountain 21';
  //Escape the address value:
  var sql = 'SELECT * FROM customers WHERE address = ?';
  //Send an array with value(s) to replace the escaped values:
  con.query(sql, [adr], function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});
احفظ الملف باسم "demo_db_where_placeholder.js" وشغل الملف
C:\Users\My Name>node demo_db_where_placeholder.js
النتيجة
[
  { id: 4, name: 'Hannah', address: 'Mountain 21'}
]
إذا كان لديك عدة عناصر نائبة ، فإن المصفوفة تحتوي على قيم متعددة ، بهذا الترتيب:
مثال
var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "myusername",
  password: "mypassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  var name = 'Amy';
  var adr = 'Mountain 21';
  //Escape the name and the address values:
  var sql = 'SELECT * FROM customers WHERE name = ? OR address = ?';
  //Send an array with value(s) to replace the escaped values:
  con.query(sql, [name, adr], function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});