IP在mysql的排序

對一個僅記錄C- class的資料的ip欄位做排序...
我們在記錄IP通常會用文字欄位
但這樣排序有點麻煩..
在下SQL語法時..我們可以這樣下
SUBSTRING_INDEX( ip儲存欄位, '.', -1 )
這個函數可以將該欄位切割只取出最後一個

因此語法可以這樣下

SELECT  * FROM `dhcp`  order by  SUBSTRING_INDEX( ip, '.', -1 );
排序的依據以ip的最後一組數字

如果不此一個c class的網段,就要將第3組加進來
SELECT  * FROM `dhcp`  order by 
SUBSTRING_INDEX( SUBSTRING_INDEX( ip, '.', -2 ), '.' ,1)*1000+SUBSTRING_INDEX( ip, '.', -1 );
上述語法是將第3組乘以1000再加上最後一組
就是欄位中的紅色部分 [192.168.1.1]
乘以1000再加上最後一組藍色部分
這樣就可以很有順序的列表出來



標籤: PHP MySQL sql
評論: 0 | 引用: 0 | 閱讀: 4399