mysqlで文字列を数値としてソートする方法を何日も探しました。
私の行は次のようになります。
order_column
1.1.2
1.1.100
1.1.1
mysql でこの列を昇順で並べると、次のようになります。
1.1.1
1.1.100
1.1.2
次の結果を得ることに興味があります。
1.1.1
1.1.2
1.1.100
SQL を使用してこの結果を生成する方法はありますか?
私の列の他の可能な値:
28.1999.1.1
1
1.1.154.20
100.1.1.1.1.15
ありがとう、みんなの時間をありがとう。
編集: ツリー データを格納する高速リレーショナル メソッド (記事のスレッド化されたコメントなど) Ayman Hourieh による最初の回答を見てください。私はそのソリューションを機能させようとしています。私のウェブサイトには、記事ごとに 10,000 件を超えるコメントがないため、次のような回避策を見つけました。
000001
000002
000002.000001
000002.000001.000001
000002.000002
000002.000003
000003
基本的に、文字列比較が失敗しないように、コメントカウンターの前にゼロを置きます。ただし、これは 99999 件のコメントに対してのみ機能します。さらにゼロを追加できます。たとえば、ゼロを 10 個追加すると、999999999 件のコメントに対して機能しますが、より洗練されたソリューションを期待していました。