2012-02-08 52 views
2

我需要按包含一組數字的字段進行排序。假設名爲TEST的表格包含ID, NAME, QUADSQUADS,如下所示。Mysql,如何按一組數字中的第一個數字排序

95,273,212,405 
717,450,771,504 
391,176,646,272 

這是我與查詢得到的結果,如

SELECT * FROM TEST ORDER BY QUADS 
391,176,646,272 
717,450,771,504 
95,273,212,405 

這是我希望得到

95,273,212,405 
391,176,646,272 
717,450,771,504 

結果我只在第一批有志在「訂單」中設置。圖中可能有一個子字符串的逗號,但不知道如何在MySQL中做到這一點。

+0

,你能告訴我們你的表結構,什麼是你已經擁有的查詢? – 2012-02-08 04:29:43

+0

你所要做的不僅僅是不尋常的,而且是一個壞主意:你應該(可能)在一列中沒有多個值(沒有一個很好的理由),因爲這與正態化的原理相矛盾。 – Blaisorblade 2012-02-08 23:34:29

回答

3

試試這個:

select * from test 
order by cast(substring_index(quads,',',1) as unsigned) 
2

你想要的是substring_index函數。

... order by substring_index(x_field,',',1) 

這將提取在x_field文本到逗號分隔符的第一次出現

2

試試這個:

select QUADS, 0+QUADS as S from TEST order by S 

0 +四邊形將轉換您的字符串爲int,將使用它只是「,」之前的第一個數字序列,這實際上是你想要的。

相關問題