如何按AlphaNumeric顺序排序为MySQL;按字母数字顺序对MySQL列进行排序
假设我有一个这样的数据表。
Name + ID
AA | 10
AE | 2
AD | 1
当我排序列ID的结果是
1
10
2
但是,当我在选择语句添加+ 0这样的列ID
SELECT * FROM tableName ORDER BY columnName + 0;
1
2
10
但对于列名的结果是这
AA
AE
AD
我已经提到这个链接,但它不适合我。 Alphanumeric Order By in Mysql
注意:所有列类型都是varchar,我无法预测要插入的数据。 我知道我的问题很简单,但仍然无法得到我想要的结果。 另外我不能使用Java对结果进行排序,因为我使用了LIMIT。 我会明白任何help.Thanks
附加信息:(样品表进行排序上的名称和ID基) 的头1是设置为另一表中的名称,并用HEADER2 W/C同样是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 2011-02-03 13:24:00
字符串的排序与数字不同。你想排序你的字符串列像一个数字。如果您只在该列中存储数字,那么您应该将其设置为数字数据类型,并且您的问题将消失。 – 2011-02-03 13:35:11
我不能使用Java,因为我需要通过LIMIT得到结果。这是由于我的分页编码。我使用LIMIT来加速查询。而且我还需要根据列进行排序。是的,我需要这样排序(AA,F,A6,B4,9C) – ace 2011-02-03 13:38:05