2017-11-12 9 views
0

私はMysqlテーブルを持っています テーブルの値をmeta_valueのサイズから最大値から最小値にソートしたいと考えています。MySqlの値が適切な値で配置されていません

値の順序を調べますか? どうすれば150,000,0001,555,555より小さいか。

enter image description here

+2

左揃えは、「meta_value」が数字ではなく文字フィールドであることを示しています。アルファベット順のソートが行われています。値が何かを表す場合は気にしません。したがって、3文字目では、 '0'は' 5'の前にソートされ、残りは履歴です。したがって、[MySQL 'Order By]の重複した可能性があります - 英数字を正しくソートすること(https://stackoverflow.com/questions/8557172/mysql-order-by-sorting-alphanumeric-correctly) –

答えて

1

Meta_valueは、CHAR列ではなく、数列です。あなたのメタ値が別のデータソースから来た場合は、自然な並べ替えを使用する必要があります。ORDER BY LENGTH(alphanumeric), alphanumeric

meta_valueの内容を制御できる場合は、列データ型をintまたはnumericまたはsomeその他の数値データ型。それからあなたはあなたが期待する種類を得るでしょう。ただし、既存のデータでデータ型を変更すると、非標準データに遭遇する危険性があります。そのため、その列に含まれる値の正確さを知る必要があります。

関連する問題