2012-07-20 55 views
0

我有一個具有TEXT列,看起來像這樣的表:MySQL的我怎麼能查詢排序日期文本

0-4 mėn 
5-12 mėn 
1-3 metai 
4-6 metai 
7 metai ir daugiau 

的文本是立陶宛。現在數據庫被設計成可以將值保存爲TEXT,這是非常糟糕的,但是我需要查詢它,以便對數據進行排序。

我寫了這個查詢:

SELECT DISTINCT `Age`, 
SUBSTRING_INDEX(Age, " ", -1) as `AgePrefix`, 
SUBSTRING_INDEX(Age, " ", 1) as `AgeValue` 
FROM `suoPage` 
ORDER BY `AgePrefix`, `AgeValue` 

它做什麼,我需要的,但是小問題,就是 「7 metai IR Hotel詳細信息」。 SUBSTRING_INDEX將它的AgePrefix設置爲「daugiau」,因此它顯示爲第一條記錄。我該如何解決這個問題?

回答

1

對於排序,你需要先經過空間提取整個字符串這樣做,你可以使用SUBSTRING功能用途:

SELECT DISTINCT `Age`, 
     SUBSTRING(Age, LOCATE(" ", Age)) as `AgePrefix`, 
     SUBSTRING_INDEX(Age, " ", 1) as `AgeValue` 
FROM `suoPage` 
ORDER BY `AgePrefix`, `AgeValue` 
+0

Pefect。謝謝! – 2012-07-20 11:14:18