2011-01-24 14 views
4

文字列の特定の部分をどのように注文するかは、codesの列にLLL_NNN、example dGd_542の値があると仮定しています。どのように私は数字の文字列の2番目の部分で注文できますか?文字列の特定の部分の注文方法は?

+2

LOL。タグが追加されたため、私の前のコメントはダムに見えます。彼らはもともとそこにいませんでした。以前のコメントを削除します。 – David

+0

その場合、私はあなたの恩赦を願います(タグのタイミングをチェックしていません)。 –

+0

@David Stratton:はい、ありましたが、probはありません。 – Babiker

答えて

10

コードからsubstringを抽出するだけで済みます。これはパフォーマンスの問題につながる可能性が非常に大きなテーブルで

order by SUBSTRING(codes, 4) asc 
3

SUBSTRING機能を使用

SELECT * FROM tablename 
ORDER BY SUBSTRING(codes FROM 4) 

3

(データベースの構造上の第一の義務コメント)

あなたが単一の列codesに符号化された2つの意味のある値を持って表示されます。可能であれば、データベースをリファクタリングして別の列にする必要があります。ソートの問題は消え去る。

(既存のデータベース構造を使用して今すぐ答え)

あなたはその式で表現し、順序を使用することができます。

SELECT c1, c2, c3, SUBSTRING_INDEX(codes, '_', 2) as code_value 
    FROM table ORDER BY code_value 
2

私は理解している場合、これはあなたの問題を解決することができます...

部分文字列(フィールド、5,7)を フィールド2としてdb.tableからフィールド順に選択します。

関連する問題