2012-02-08 20 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

はあなたが私達にあなたのテーブル構造を表示することができますし、あなたが既に持っているクエリは何ですか? –

+0

あなたがしようとしていることは、珍しいことではありませんが、悪い考えです。正規化の原則と矛盾しているので、1つの列に(おそらく)複数の値を入れる必要はありません。 – Blaisorblade

答えて

3

これを試してみてください:

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

substring_indexの機能が必要です。

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

これは、カンマ区切り

2

が最初に出現するまでのx_field内のテキストを抽出し、これを試してみてください:

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

0 + QUADSはintに、あなたの文字列を変換し、使用しますそれは実際にあなたが望むものである "、"の前の最初の数字のシーケンスです。

関連する問題