1. ホーム
  2. mysql

[解決済み] MySQLクエリで部分的に非数値のテキストを数値に変換する

2022-04-27 07:11:43

質問

MySQLのクエリでテキストを数値に変換することは可能でしょうか?名前と数字で構成される識別子を持つカラムがあり、その形式は "名前-数字"です。このカラムは VARCHAR 型です。私は番号に従って行をソートしたいのですが(同じ名前を持つ行)、カラムは文字順に従ってソートされています。

name-1
name-11
name-12
name-2

数値を切り捨てた場合、「varchar」の数値を「実数」に変換して、行のソートに使用することは可能でしょうか?以下のような順番で取得したいのですが。

name-1
name-2
name-11
name-12

数字を別の列として表現することができない。

編集 2011-05-11 9:32

私は以下の解決策を見つけました。 ... ORDER BY column * 1 . 名前に数字が含まれない場合、その解決策を使用しても問題ないでしょうか?

どのように解決するのですか?

これでうまくいくはずです。

SELECT field,CONVERT(SUBSTRING_INDEX(field,'-',-1),UNSIGNED INTEGER) AS num
FROM table
ORDER BY num;