কম্পিউটার টিউটোরিয়াল

MySQL-এ INET_ATON() ব্যবহার করে IP ঠিকানা হিউম্যান-রিডেবল ফরম্যাটে সর্ট করুন

MySQL-এ IP ঠিকানা (যেমন 192.168.110.78) স্ট্রিং হিসেবে সংরক্ষিত থাকলে বর্ণানুক্রমিক সর্টিং সঠিক ফলাফল দেয় না (192.168.110.78, 192.168.110.87, 192.168.110.75 -> 75, 78, 87 নয়)। INET_ATON() ফাংশন IP কে সংখ্যায় কনভার্ট করে, যা সঠিক নümerিক্যাল সর্টিং নিশ্চিত করে।

উদাহরণ

১. টেবিল তৈরি করুন

mysql> CREATE TABLE DemoTable (
    -> IpAddress VARCHAR(50)
    -> );

২. IP ঠিকানা ইনসার্ট করুন

mysql> INSERT INTO DemoTable VALUES('192.168.110.78');
mysql> INSERT INTO DemoTable VALUES('192.168.110.87');
mysql> INSERT INTO DemoTable VALUES('192.168.110.75');

৩. ডিফল্ট স্ট্রিং সর্ট (ভুল ক্রম)

mysql> SELECT * FROM DemoTable;

আউটপুট: 192.168.110.78, 192.168.110.87, 192.168.110.75

৪. INET_ATON() দিয়ে সঠিক সর্টিং

mysql> SELECT * FROM DemoTable ORDER BY INET_ATON(IpAddress);

৫. ফলাফল (সঠিক নümerিক্যাল ক্রম)

+----------------+
| IpAddress      |
+----------------+
| 192.168.110.75 |
| 192.168.110.78 |
| 192.168.110.87 |
+----------------+

মূল পয়েন্ট:

  • INET_ATON('192.168.110.75') = 3232237131 (সংখ্যা)۔
  • INET_NTOA(3232237131) = '192.168.110.75' (বিপরীত কনভার্সন)۔
  • IPv6-এর জন্য INET6_ATON() / INET6_NTOA() ব্যবহার করুন (MySQL 5.6+)।
  • সর্বোত্তম অনুশীলন: IP ঠিকানা সংরক্ষণের জন্য VARBINARY(16) বা BINARY(16) কলাম ব্যবহার করুন, স্ট্রিং নয়।
  1. MySQL-এ REGEXP ব্যবহার করে ডট ও সংখ্যা সমাহিত রেকর্ড ফেচ করা

  2. MySQL-এ VARCHAR কলামে স্ট্রিং ও সংখ্যা মিশ্রিত ডেটা সর্ট করা (ORDER BY + 0)

  3. MySQL-এ INSERT করার সময় তারিখ ফরম্যাট করা

  4. MySQL-এ ORDER BY CASE ব্যবহার করে কাস্টম ক্রমে রেকর্ড সাজানো