ホームページ >データベース >mysql チュートリアル >MySQL で数値を含む VARCHAR カラムを真の数値としてソートするにはどうすればよいですか?

MySQL で数値を含む VARCHAR カラムを真の数値としてソートするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-29 22:20:29322ブラウズ

How can I sort VARCHAR columns containing numbers in MySQL as true numeric values?

MySQL での Varchar 文字列の数値並べ替え

リレーショナル データベースでデータを管理する場合、多くの場合、数値の内容に基づいて値を並べ替える必要があります。 。ただし、数値が VARCHAR カラムに文字列として格納されている場合、MySQL はソートを正しく実行しない可能性があります。この記事では、数値を実際の数値として含む VARCHAR 列を並べ替える解決策について説明します。

問題:

数値を格納する VARCHAR 型の列を並べ替えるにはどうすればよいですか? '17.95'、'199.95'、'139.95' などの文字列を MySQL の実際の数値として使用するには?

解決策:

数値を含む VARCHAR 文字列を次のようにソートするには数値の場合は、次の手法を使用できます。

  • 式「string_column * 1」を使用して、VARCHAR 列に 1 を掛けます。
<code class="sql">SELECT *
FROM tbl
ORDER BY string_column * 1</code>

この操作は、 VARCHAR 文字列を数値データ型に変換することで、MySQL がソートを正しく実行できるようになります。

* 1 を使用する利点:

VARCHAR 文字列の数値ソートを有効にする以外に、次の値を乗算します。 1 には他にもいくつかの利点があります:

  • 復元力: キャスト中に発生する可能性のあるアンダーフローの問題を許容できます。
  • 耐性: 機能します数値データと非数値データの両方を含む列の場合、非数値部分は無視されます。
  • 英数字の処理: '123A'、' などの英数字文字列から数値部分を抽出します。 124A'、および '125A'。

以上がMySQL で数値を含む VARCHAR カラムを真の数値としてソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。