Mysql查询未按名称排序

Mysql查询未按名称排序,mysql,Mysql,我正在根据name列对表进行排序,但排序不正确 它是这样排序的:-前20行基于字母顺序,然后再次基于字母顺序排序 这是我的问题 select Name,ID from tbl_book order by Name Limit 0,100 这就是我得到的 abcd|2 bgry|3 ... ... zref|100 agtr|4 dret|10 ... ... 任何人都知道为什么会这样 更新 ID int(11) Name varchar(255) 答案是 select ltrim(Name

我正在根据name列对表进行排序,但排序不正确

它是这样排序的:-前20行基于字母顺序,然后再次基于字母顺序排序

这是我的问题

select Name,ID from tbl_book order by Name Limit 0,100
这就是我得到的

abcd|2
bgry|3
...
...
zref|100
agtr|4
dret|10
...
...
任何人都知道为什么会这样

更新

ID int(11)
Name varchar(255)
答案是

select ltrim(Name),ID from tbl_book order by 1 Limit 0,100
由TUXUDAY提供。

试试看

select name,id from tbl_book orderby name asc
但如果要设置限制,则需要更新起始值并将限制值设置为常量,如(100,20),(100,40),…

尝试以下查询:

SELECT Name, ID 
FROM  tbl_book
ORDER BY LTRIM(Name)
LIMIT 100;
或者,数据整理可能存在问题。也可以尝试以下方法:

SELECT Name, ID 
FROM  tbl_book
ORDER BY LTRIM(Name) COLLATE latin1_swedish_ci 
LIMIT 100;
你可以试试这个:

SELECT Name,ID FROM tbl_book ORDER by Name ASC LIMIT 0,100

这是实际数据吗?也许你有区分大小写的排序,首先是大写,然后是小写的beginleters.@WebnetMobile.com我想还是看看吧。你说得对。除了大小写问题,似乎没有。名称列中没有大写数据。@tuxday这不会说明原因。我宁愿这样做:
从tbl_book order by 1 Limit 0100中选择CONCAT(“”,Name“”),以查看真正的内容。接下来..您需要提供与创建表格时相同的列名I Plate Name in the Namegiving error for latin1_swedish_ci和Name列的排序规则为latin1_swedish_ci,我将其更改为utf8\u general\u ci。尝试使用
LTRIM
也可以使用查询
查看
name
列的排序规则
显示tbl\u书籍中的完整列