Php MySQL排序未按预期工作

Php MySQL排序未按预期工作,php,mysql,sorting,Php,Mysql,Sorting,我有一个表,名为companys,如下所示 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 ; INSER

我有一个表,名为companys,如下所示

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 ;
INSERT INTO `companies` (`id`, `user_id`, `name`) VALUES
(1, 2, 'Mylan'),
(2, 1, 'Intas'),
(3, 48, 'Glenmark'),
(4, 21, 'Amipharma'),
(5, 1, 'XEPA SOUL');
此表的MySQL talbe数据如下所示

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 ;
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;
这是我的归来

塞帕灵魂 阿米巴制药 格伦马克 Intas 迈兰 这是错误的,因为X在前面,它必须在最后显示

我不知道为什么会这样

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


谢谢

正如其他人在评论中所说,我认为你在XEPA SOUL面前有一个额外的空白。如果需要,您可以按条款的顺序排列您的数据:

SELECT * FROM companies ORDER BY TRIM(name) ASC;

正如其他人在评论中所说,我认为你在XEPA SOUL面前有一个额外的空白。如果需要,您可以按条款的顺序排列您的数据:

SELECT * FROM companies ORDER BY TRIM(name) ASC;

默认字符集和排序规则是latin1和latin1_swedish_ci,因此默认情况下非二进制字符串不区分大小写。这是排序规则设置的问题。 试试这个


使用latin2 ASC从Companys ORDER BY CONVERT name中选择*默认字符集和排序规则为latin1和latin1_swedish_ci,因此默认情况下非二进制字符串不区分大小写。这是排序规则设置的问题。 试试这个


使用latin2 ASC从公司订单中选择*按转换名称

您可以使用LTRIM删除左空格

  SELECT * FROM companies ORDER BY LTRIM(name) ASC;

您可以使用LTRIM删除左空格

  SELECT * FROM companies ORDER BY LTRIM(name) ASC;

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


按id ASC从公司订单中选择*

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


按id ASC从公司订单中选择*

如果你所拥有的一切都与你发布的一模一样,那么它就会起作用。所以我认为不是。例如:您实际上并没有执行ORDER BY或XEPA SOUL在前面有一些空格,我想,可能是XEPA中X之前插入了一个空格SOUL@x4rf41请将其作为答案发布…答案是什么?我只是给了你一些suggestions@x4rf41额外的空间…这就是问题所在。如果你所有的东西都和你发布的一模一样,那么它就会起作用。所以我认为不是。例如:您实际上并没有执行ORDER BY或XEPA SOUL在前面有一些空格,我想,可能是XEPA中X之前插入了一个空格SOUL@x4rf41请将其作为答案发布…答案是什么?我只是给了你一些suggestions@x4rf41额外的空间…这就是问题所在。对于一个无效的问题,这是一个很好的答案。问题中的所有示例都以大写字母开头,因此这不是排序问题。对于无效问题,这是一个很好的答案。问题中的所有示例都以大写字母开头,因此它不是排序问题。