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)কলাম ব্যবহার করুন, স্ট্রিং নয়।