MySQL, INET_ATON으로 IP 주소 정렬하기

MySQL INET_ATON으로 IP 주소 정렬하기.

mysql에서 ip 주소(char type field)를 정렬하면 원하는 결과가 나오지 않는다.

mysql>  select ip from device_device where category_id=2 order by ip;
+----------------+
| ip             |
+----------------+
| 192.168.100.1  |
| 192.168.100.10 |
| 192.168.100.11 |
 ...
| 192.168.100.35 |
| 192.168.100.36 |
| 192.168.100.37 |
| 192.168.100.4  |
| 192.168.100.5  |
| 192.168.100.6  |
| 192.168.100.7  |
| 192.168.100.9  |
+----------------+
35 rows in set (0.00 sec)

mysql>

아래와 같이 inet_aton 함수를 사용하면 원하는 순서대로 정렬된다.

mysql> select ip from device_device where category_id=2 order by inet_aton(ip);
+----------------+
| ip             |
+----------------+
| 192.168.100.1  |
| 192.168.100.2  |
| 192.168.100.3  |
   ...
| 192.168.100.29 |
| 192.168.100.30 |
| 192.168.100.31 |
| 192.168.100.32 |
| 192.168.100.33 |
| 192.168.100.34 |
| 192.168.100.35 |
| 192.168.100.36 |
| 192.168.100.37 |
+----------------+
35 rows in set (0.00 sec)

답글 남기기

Your email address will not be published.