MySQL如何查询排序日期文本

时间:2012-07-20 10:47:10

标签: mysql

我有一个表有一个TEXT列,如下所示:

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 daugiau”。 SUBSTRING_INDEX得到它的AgePrefix为“daugiau”,因此它显示为第一条记录。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

为了排序目的,你需要在第一个空格后提取整个字符串,你可以使用SUBSTRING函数:

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