データベースに文字列の形式で数値を格納しました。データベースからの数字は、私がこれを行うことができますし、どのように私は、それは2つのオプションがありますデータベース内に文字列として格納されている番号で降順で数値を取得することは可能ですか?
90
89
88
1000
10
1
データベースに文字列の形式で数値を格納しました。データベースからの数字は、私がこれを行うことができますし、どのように私は、それは2つのオプションがありますデータベース内に文字列として格納されている番号で降順で数値を取得することは可能ですか?
90
89
88
1000
10
1
個別に選択する必要はなく、ORDER BY部分を数値として指定するだけです。
SELECT * FROM article ORDER BY CAST(numbers AS SIGNED) DESC;
select * from article order by numbers DESC
として番号順になり、この
select * from article order by numbers DESC
を達成することができます:DESC(エンディング)とASC(エンディングは、 )(ASCデフォルトです)。
変換が必要な場所でSQLがCAST()
関数を使用できるように、正確な列を指定する必要があります。
SELECT CAST(numbers AS INT) FROM article ORDER BY numbers DESC
これは、アルファベット順ではなく正しい順序で数値を返します。
"文字列"とは、 "VARCHAR"を意味します。 INTを使用して数値を数値として保存すると、多くの問題を解決できます。
このように数字を格納することを避けることができない場合は、正しい順序で返されるように、常にゼロを特定のサイズに埋め込むことができます。
あなたは数値をvarcharとして保存しています。数値ではありません。それらは文字列としてソートされています
SELECT numbers
FROM article
ORDER BY CAST(numbers AS INT) DESC;
数字の場合はそのように保存してください。また、CASTのためにインデックスを使ってこのソートを最適化することはできません
文字データ型ではなく数値データ型として格納しますか? – gbn