首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL排序不像预期那样工作

MySQL排序不像预期那样工作
EN

Stack Overflow用户
提问于 2013-04-08 10:51:44
回答 4查看 699关注 0票数 1

我有一张名叫公司的桌子如下。

代码语言:javascript
复制
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数据如下所示。

代码语言:javascript
复制
INSERT INTO `companies` (`id`, `user_id`, `name`) VALUES
(1, 2, 'Mylan'),
(2, 1, 'Intas'),
(3, 48, 'Glenmark'),
(4, 21, 'Amipharma'),
(5, 1, 'XEPA SOUL');

现在,当我使用以下查询对记录进行排序时

代码语言:javascript
复制
SELECT * FROM companies ORDER BY name ASC;

这是我回来的。

  • XEPA灵魂
  • 阿米法玛
  • 格伦马克
  • 英塔斯
  • Mylan

这是错误的,因为X是第一位的,它必须显示在最后。

我不知道为什么会这样。

请给出一些提示或解释,以便我能纠正这一点。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-08 11:53:56

您可以使用LTRIM()删除左空间,

代码语言:javascript
复制
  SELECT * FROM companies ORDER BY LTRIM(name) ASC;
票数 3
EN

Stack Overflow用户

发布于 2013-04-08 12:55:37

为了获得最好的结果,您可以将orderby用于id。

从id的公司订单中选择*;

票数 2
EN

Stack Overflow用户

发布于 2013-04-08 11:14:17

正如其他赛义德在评论,我认为你有一个额外的空白在XEPA的灵魂前面。如果需要,可以在纵倾 clausule中对数据进行纵倾

代码语言:javascript
复制
SELECT * FROM companies ORDER BY TRIM(name) ASC;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15877274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档