MySQL中進(jìn)行排序按照1 11 2 22的排序方式需要對(duì)文本進(jìn)行分割,并且在排序時(shí)特殊處理。具體操作如下:
SELECT * FROM table ORDER BY CAST(SUBSTRING_INDEX(column_name,' ',1) AS INTEGER), CAST(SUBSTRING(column_name FROM (INSTR(column_name,' ')+1))) AS INTEGER
以上代碼實(shí)現(xiàn)了在ORDER BY語句中對(duì)列名進(jìn)行分割操作,并對(duì)每個(gè)分割后的數(shù)字進(jìn)行排序。這樣就可以保證1在11前,2在22前的排序效果。
實(shí)際使用時(shí),需要把column_name替換成需要排序的列名。如果要降序排序,則只需要在語句后面加上DESC關(guān)鍵字即可。
同時(shí)需要注意,使用以上排序方式時(shí),列中的數(shù)據(jù)需要符合特定的格式,即每個(gè)數(shù)字與其后一個(gè)數(shù)字之間需要有一個(gè)空格。如果列中存在不符合要求的數(shù)據(jù),排序可能不正確。