我有一张名叫公司的桌子如下。
CREATE TABLE IF NOT EXISTS `companies` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`name` varchar(40) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;该表的MySQL table数据如下所示。
INSERT INTO `companies` (`id`, `user_id`, `name`) VALUES
(1, 2, 'Mylan'),
(2, 1, 'Intas'),
(3, 48, 'Glenmark'),
(4, 21, 'Amipharma'),
(5, 1, 'XEPA SOUL');现在,当我使用以下查询对记录进行排序时
SELECT * FROM companies ORDER BY name ASC;这是我回来的。
这是错误的,因为X是第一位的,它必须显示在最后。
我不知道为什么会这样。
请给出一些提示或解释,以便我能纠正这一点。
谢谢
发布于 2013-04-08 11:53:56
您可以使用LTRIM()删除左空间,
SELECT * FROM companies ORDER BY LTRIM(name) ASC;发布于 2013-04-08 12:55:37
为了获得最好的结果,您可以将orderby用于id。
从id的公司订单中选择*;
发布于 2013-04-08 11:14:17
正如其他赛义德在评论,我认为你有一个额外的空白在XEPA的灵魂前面。如果需要,可以在纵倾 clausule中对数据进行纵倾:
SELECT * FROM companies ORDER BY TRIM(name) ASC;https://stackoverflow.com/questions/15877274
复制相似问题