どのようにしてAlphaNumeric順でMySQLにソートできますか?MySQLカラムを英数字順にソート
このようなデータを持つテーブルがあるとします。
Name + ID
AA | 10
AE | 2
AD | 1
Iソート列ID結果が
1
10
2
あるしかし、私は
SELECT * FROM tableName ORDER BY columnName + 0;
1
2
10
列IDに対してこのようにselect文で+ 0を追加します。しかし、列名のための結果はこの
AA
AE
AD
Iすでにこのリンクを参照していますが、それは私のためには機能しません。 Alphanumeric Order By in Mysql
注:すべての列タイプはvarcharで、どのデータが挿入されるか予測できません。 私の問題は単純だとわかっていますが、依然として私が望む結果を得ることはできません。 また、LIMITを使用しているため、Javaを使用して結果を並べ替えることはできません。私はどんなhelp.Thanks
を感謝します追加情報:(サンプル表は名前とIDのベースをソートする) HEADER1は別のテーブルに設定の名前とW/C HEADER2と同じであるがID
ですCREATE TABLE IF NOT EXISTS `sort` (
`header1` varchar(200) DEFAULT NULL,
`header2` varchar(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `sort` (`header1`, `header2`) VALUES
('AA', '10'),
('AE', '2'),
('AD', '1'),
('AD', '1'),
('AF', 'a'),
('AF', 'a1'),
('1', 'a1');
Javaを使用できない場合は、タグを削除する必要があります。もっと正確にする必要があります。たとえば、あなたが期待するデータを教えてください。 '(AA、5、A6、B4、9C)'については、あなたもそれをどのようにソートする必要がありますか? – maaartinus
文字列のソート方法が数字とは異なります。文字列を数値のようにソートする必要があります。その列に数値だけを格納する場合は、数字のデータ型にする必要があり、問題は解決しません。 –
結果をLIMITで取得する必要があるため、Javaを使用できません。これは私のページ区切りコーディングによるものです。 LIMITを使用してクエリを高速化しました。また、列を基に並べ替える必要があります。はい、私はそのような並べ替えをする必要があります(AA、F、A6、B4,9C) – ace