Node.js MySQL Order By

Node.js ஐப் பயன்படுத்தி MySQL வினா முடிவுகளை ஏறுவரிசை மற்றும் இறங்குவரிசையில் வரிசைப்படுத்த கற்றுக்கொள்ளுங்கள்

முடிவை வரிசைப்படுத்துதல்

முடிவை ஏறுவரிசை அல்லது இறங்குவரிசையில் வரிசைப்படுத்த ORDER BY அறிக்கையைப் பயன்படுத்தவும்.

ORDER BY முக்கியச்சொல் முடிவை இயல்பாக ஏறுவரிசையில் வரிசைப்படுத்துகிறது. முடிவை இறங்குவரிசையில் வரிசைப்படுத்த, DESC முக்கியச்சொல்லைப் பயன்படுத்தவும்.

எடுத்துக்காட்டு

பெயரின் அடிப்படையில் அகரவரிசையில் முடிவை வரிசைப்படுத்தவும்:

let mysql = require('mysql');

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

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers ORDER BY name", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

மேலே உள்ள குறியீட்டை "demo_db_orderby.js" என்ற கோப்பில் சேமித்து கோப்பை இயக்கவும்:

C:\Users\Your Name>node demo_db_orderby.js

இது உங்களுக்கு இந்த முடிவைக் கொடுக்கும்:

[
  { id: 3, name: 'Amy', address: 'Apple st 652'},
  { id: 11, name: 'Ben', address: 'Park Lane 38'},
  { id: 7, name: 'Betty', address: 'Green Grass 1'},
  { id: 13, name: 'Chuck', address: 'Main Road 989'},
  { id: 4, name: 'Hannah', address: 'Mountain 21'},
  { id: 1, name: 'John', address: 'Highway 71'},
  { id: 5, name: 'Michael', address: 'Valley 345'},
  { id: 2, name: 'Peter', address: 'Lowstreet 4'},
  { id: 8, name: 'Richard', address: 'Sky st 331'},
  { id: 6, name: 'Sandy', address: 'Ocean blvd 2'},
  { id: 9, name: 'Susan', address: 'One way 98'},
  { id: 10, name: 'Vicky', address: 'Yellow Garden 2'},
  { id: 14, name: 'Viola', address: 'Sideway 1633'},
  { id: 12, name: 'William', address: 'Central st 954'}
]

💡 ORDER BY முக்கிய குறிப்புகள்:

  • இயல்பு வரிசை: ORDER BY இயல்பாக ஏறுவரிசையில் வரிசைப்படுத்துகிறது
  • ASC முக்கியச்சொல்: ஏறுவரிசையை வெளிப்படையாகக் குறிப்பிட விருப்பமானது
  • பல நெடுவரிசைகள்: காற்புள்ளியால் பிரிக்கப்பட்ட பல நெடுவரிசைகளால் வரிசைப்படுத்தலாம்
  • தரவு வகைகள்: எண்கள், சரங்கள் மற்றும் தேதிகள் அனைத்தும் வரிசைப்படுத்தப்படலாம்

ORDER BY DESC

முடிவை இறங்குவரிசையில் வரிசைப்படுத்த DESC முக்கியச்சொல்லைப் பயன்படுத்தவும்.

எடுத்துக்காட்டு

பெயரின் அடிப்படையில் தலைகீழ் அகரவரிசையில் முடிவை வரிசைப்படுத்தவும்:

let mysql = require('mysql');

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

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers ORDER BY name DESC", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

மேலே உள்ள குறியீட்டை "demo_db_orderby_desc.js" என்ற கோப்பில் சேமித்து கோப்பை இயக்கவும்:

C:\Users\Your Name>node demo_db_orderby_desc.js

இது உங்களுக்கு இந்த முடிவைக் கொடுக்கும்:

[
  { id: 12, name: 'William', address: 'Central st 954'},
  { id: 14, name: 'Viola', address: 'Sideway 1633'},
  { id: 10, name: 'Vicky', address: 'Yellow Garden 2'},
  { id: 9, name: 'Susan', address: 'One way 98'},
  { id: 6, name: 'Sandy', address: 'Ocean blvd 2'},
  { id: 8, name: 'Richard', address: 'Sky st 331'},
  { id: 2, name: 'Peter', address: 'Lowstreet 4'},
  { id: 5, name: 'Michael', address: 'Valley 345'},
  { id: 1, name: 'John', address: 'Highway 71'},
  { id: 4, name: 'Hannah', address: 'Mountain 21'},
  { id: 13, name: 'Chuck', address: 'Main Road 989'},
  { id: 7, name: 'Betty', address: 'Green Grass 1'},
  { id: 11, name: 'Ben', address: 'Park Lane 38'},
  { id: 3, name: 'Amy', address: 'Apple st 652'}
]

ORDER BY ASC

ORDER BY name ASC - ஏறுவரிசை (A-Z, 0-9)

  • இயல்பு வரிசை
  • ASC விருப்பமானது
  • சிறிய மதிப்புகள் முதலில்

ORDER BY DESC

ORDER BY name DESC - இறங்குவரிசை (Z-A, 9-0)

  • DESC தேவை
  • பெரிய மதிப்புகள் முதலில்
  • சமீபத்திய தேதிகள் முதலில்

பல நெடுவரிசை வரிசைப்படுத்துதல்

நீங்கள் பல நெடுவரிசைகளால் வரிசைப்படுத்தலாம், ஒவ்வொரு நெடுவரிசையும் வெவ்வேறு வரிசையில் இருக்கலாம்.

எடுத்துக்காட்டு

பெயரின் அடிப்படையில் ஏறுவரிசையில் வரிசைப்படுத்தவும், பின்னர் அதே பெயர்களுக்கு முகவரியின் அடிப்படையில் இறங்குவரிசையில் வரிசைப்படுத்தவும்:

let mysql = require('mysql');

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

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers ORDER BY name ASC, address DESC", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

மேம்பட்ட பல நெடுவரிசை வரிசைப்படுத்தல்

// Multiple columns with different sort orders
con.query("SELECT * FROM products ORDER BY category ASC, price DESC, name ASC", function (err, result) {
  if (err) throw err;
  console.log(result);
});

// Order by calculated fields
con.query("SELECT *, (price * quantity) as total FROM orders ORDER BY total DESC", function (err, result) {
  if (err) throw err;
  console.log(result);
});

// Order by with WHERE clause
con.query("SELECT * FROM customers WHERE id > 5 ORDER BY name ASC", function (err, result) {
  if (err) throw err;
  console.log(result);
});

வெவ்வேறு தரவு வகைகளுடன் ORDER BY

எண்களால் வரிசைப்படுத்துதல்

// Order by numeric column ascending
con.query("SELECT * FROM products ORDER BY price ASC", function (err, result) {
  if (err) throw err;
  console.log(result);
});

// Order by numeric column descending
con.query("SELECT * FROM products ORDER BY price DESC", function (err, result) {
  if (err) throw err;
  console.log(result);
});

// Order by calculated numeric value
con.query("SELECT *, (price * 0.9) as discounted_price FROM products ORDER BY discounted_price DESC", function (err, result) {
  if (err) throw err;
  console.log(result);
});

தேதிகளால் வரிசைப்படுத்துதல்

// Order by date ascending (oldest first)
con.query("SELECT * FROM orders ORDER BY order_date ASC", function (err, result) {
  if (err) throw err;
  console.log(result);
});

// Order by date descending (newest first)
con.query("SELECT * FROM orders ORDER BY order_date DESC", function (err, result) {
  if (err) throw err;
  console.log(result);
});

// Order by timestamp
con.query("SELECT * FROM logs ORDER BY created_at DESC", function (err, result) {
  if (err) throw err;
  console.log(result);
});

ORDER BY சிறந்த நடைமுறைகள்

செயல்திறன்

  • குறியீட்டு நெடுவரிசைகளால் வரிசைப்படுத்தவும்
  • தேவையற்ற நெடுவரிசைகளைத் தேர்ந்தெடுப்பதைத் தவிர்க்கவும்
  • பெரிய முடிவு செட்களுக்கு LIMIT ஐப் பயன்படுத்தவும்
  • சிக்கலான வரிசைப்படுத்தலுக்கு முன் தரவை வடிகட்டவும்

வரிசைப்படுத்தல் உத்திகள்

  • முதன்மை வரிசைப்படுத்தல் நெடுவரிசையை முதலில் வைக்கவும்
  • இரண்டாம் நிலை வரிசைப்படுத்தலுக்கு குறைவான முக்கியத்துவம் வாய்ந்த நெடுவரிசைகளைப் பயன்படுத்தவும்
  • தேதி நெடுவரிசைகளுக்கு DESC ஐப் பயன்படுத்தவும் (சமீபத்தியவை முதலில்)
  • பெயர் நெடுவரிசைகளுக்கு ASC ஐப் பயன்படுத்தவும் (அகரவரிசை)

குறியீடு தரம்

  • வரிசையை வெளிப்படையாகக் குறிப்பிடவும் (ASC அல்லது DESC)
  • நெடுவரிசை பெயர்களை தெளிவாகக் குறிப்பிடவும்
  • சிக்கலான ORDER BY கூற்றுகளை வடிவமைக்கவும்
  • நிலையான குறியீட்டு மரபுகளைப் பின்பற்றவும்

முழுமையான எடுத்துக்காட்டு

அனைத்து ORDER BY நுட்பங்களையும் உள்ளடக்கிய முழுமையான எடுத்துக்காட்டு:

const mysql = require('mysql');

// Create connection
const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "password",
  database: "company_db"
});

// Connect to MySQL
con.connect((err) => {
  if (err) {
    console.error('Error connecting to MySQL:', err.message);
    return;
  }
  
  console.log('Connected to MySQL database');
  
  // Example 1: Basic ORDER BY ASC
  console.log('\n1. Customers ordered by name (ASC):');
  con.query("SELECT * FROM customers ORDER BY name ASC", (err, result) => {
    if (err) {
      console.error('Error in query 1:', err.message);
      return;
    }
    console.log(result);
  });
  
  // Example 2: ORDER BY DESC
  console.log('\n2. Customers ordered by name (DESC):');
  con.query("SELECT * FROM customers ORDER BY name DESC", (err, result) => {
    if (err) {
      console.error('Error in query 2:', err.message);
      return;
    }
    console.log(result);
  });
  
  // Example 3: Multiple column ordering
  console.log('\n3. Customers ordered by name ASC, address DESC:');
  con.query("SELECT * FROM customers ORDER BY name ASC, address DESC", (err, result) => {
    if (err) {
      console.error('Error in query 3:', err.message);
      return;
    }
    console.log(result);
  });
  
  // Example 4: ORDER BY with WHERE and LIMIT
  console.log('\n4. Top 5 customers with id > 5, ordered by name:');
  con.query(
    "SELECT * FROM customers WHERE id > 5 ORDER BY name ASC LIMIT 5",
    (err, result) => {
      if (err) {
        console.error('Error in query 4:', err.message);
        return;
      }
      console.log(result);
      
      // Close connection after all queries
      setTimeout(() => {
        con.end((err) => {
          if (err) {
            console.error('Error closing connection:', err.message);
            return;
          }
          console.log('\nConnection closed');
        });
      }, 1000);
    }
  );
});

பயிற்சி

MySQL வினாவின் முடிவுகளை வரிசைப்படுத்த பயன்படுத்தப்படும் சரியான SQL கூற்றைத் தேர்ந்தெடுக்கவும்.

SORT BY
✗ தவறு! "SORT BY" என்பது MySQL இல் ஒரு செல்லுபடியாகும் SQL கூற்று அல்ல
ARRANGE BY
✗ தவறு! "ARRANGE BY" என்பது MySQL இல் ஒரு செல்லுபடியாகும் SQL கூற்று அல்ல
ORDER BY
✓ சரி! "ORDER BY" என்பது MySQL வினாவின் முடிவுகளை வரிசைப்படுத்த பயன்படும் சரியான SQL கூற்றாகும்
ORGANIZE BY
✗ தவறு! "ORGANIZE BY" என்பது MySQL இல் ஒரு செல்லுபடியாகும் SQL கூற்று அல்ல