Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में IP एड्रेस रिकॉर्ड्स के अनुसार कॉलम को ऑर्डर करें

MySQL में IP एड्रेस को सही क्रम में सॉर्ट करने के लिए, INET_ATON() फंक्शन का उपयोग करें। यह फंक्शन IP एड्रेस को संख्यात्मक मान में बदल देता है, जिससे सही संख्यात्मक क्रम में सॉर्टिंग संभव होती है।

टेबल बनाएं:

mysql> create table DemoTable ( 
    -> IpAddress VARCHAR(50) 
    -> ); 
Query OK, 0 rows affected (1.36 sec)

रिकॉर्ड इन्सर्ट करें:

mysql> insert into DemoTable values('192.168.110.78'); 
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('192.168.110.87'); 
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable values('192.168.110.75'); 
Query OK, 1 row affected (0.26 sec)

सभी रिकॉर्ड देखें (डिफ़ॉल्ट स्ट्रिंग सॉर्टिंग):

mysql> select * from DemoTable;
+----------------+
| IpAddress      |
+----------------+
| 192.168.110.78 |
| 192.168.110.87 |
| 192.168.110.75 |
+----------------+
3 rows in set (0.00 sec)

IP एड्रेस के अनुसार सही क्रम में ऑर्डर करने के लिए क्वेरी:

mysql> select * from DemoTable 
    -> ORDER BY INET_ATON(IpAddress);

परिणाम:

+----------------+
| IpAddress      |
+----------------+
| 192.168.110.75 |
| 192.168.110.78 |
| 192.168.110.87 |
+----------------+
3 rows in set (0.00 sec)

व्याख्या

  • INET_ATON('192.168.110.75') = 3232235595
  • INET_ATON('192.168.110.78') = 3232235598
  • INET_ATON('192.168.110.87') = 3232235607

संख्यात्मक मानों के आधार पर सॉर्टिंग सही क्रम देती है, जबकि स्ट्रिंग सॉर्टिंग '192.168.110.75' को '192.168.110.78' के बाद रखती (क्योंकि '5' > '8' लेक्सिकोग्राफिकली)।

संबंधित फंक्शन

  • INET_NTOA() - संख्यात्मक IP को वापस डॉटेड नोटेशन में बदलता है।
  • INET6_ATON() / INET6_NTOA() - IPv6 एड्रेस के लिए।

उपयोग का उदाहरण

-- IP रेंज क्वेरी
SELECT * FROM logs 
WHERE INET_ATON(ip) BETWEEN INET_ATON('192.168.1.1') AND INET_ATON('192.168.1.255');
  1. - MySQL में संख्याओं वाले रिकॉर्ड राउंड करें

    संख्या राउंड करने के लिए MySQL ROUND() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Amount DECIMAL(10,4) -> ); Query OK, 0 rows affected (1.18 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(100.578)

  1. - MySQL में केवल विशिष्ट रिकॉर्ड की सूची को ASC क्रम में प्रदर्शित करें

    समाधान ORDER BY CASE स्टेटमेंट का उपयोग करके कस्टम क्रम लागू करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2039 VALUES (John Doe), (John Smith), (Chris Brown), (Adam Smith), (David Miller); कस्टम क्रम क्वेरी Smith वाले नामों को अंत में रखें, फिर वर्णानुक्रम क्रम: ORDER BY CASE WHEN Name LIKE %Sm

  1. - उदाहरणों के साथ MySQL AUTO_INCREMENT

    आइए समझते हैं कि AUTO_INCREMENT कैसे काम करता है: AUTO_INCREMENT विशेषता का उपयोग नई रो के लिए एक अद्वितीय पहचानकर्ता उत्पन्न करने के लिए किया जाता है। आइए देखें कि यह स्टेटमेंट कैसे काम करता है। उससे पहले, नीचे दी गई क्वेरी पर विचार करें: क्वेरी CREATE TABLE tableName ( id MEDIUMINT NOT NULL