MySQL クエリの並べ替えのために数値以外の部分テキストを数値に変換する
MySQL では、埋め込まれた数値に基づいて varchar 列を並べ替えるのが困難な場合があります。この質問は、列に「名前-番号」形式の識別子が含まれており、数値コンポーネントに基づいて並べ替える必要があるという実際的なシナリオを扱います。
問題:
この列には、「名前-番号」形式のテキストが含まれており、テキスト内に数値コンポーネントが埋め込まれています。デフォルトの文字順序を使用して列を並べ替えると、文字の比較により順序が不正確になります。
解決策:
これを解決するには、非-数値テキストを並べ替える前に数値に変換します。次のクエリでこれを実現できます。
SELECT field,CONVERT(SUBSTRING_INDEX(field,'-',-1),UNSIGNED INTEGER) AS num FROM table ORDER BY num;
説明:
追加の考慮事項:
以上が「name-number」文字列を含む MySQL 列を数値的にソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。