使用ASC排名的MySQL和PHP

使用ASC排名的MySQL和PHP,mysql,Mysql,为了修正分数表之外的排名,我把这个放进去 SELECT * from scores where tournament_id = "3" AND class = "MA1" ORDER BY Rank ASC 它出来了 1 11 12 13 2 22 3 31 4 5 6 and on, how can it be fixed? 谢谢您的排名列数据类型是字符串。因此,它返回如上所述,请将其转换为数字或整数格式 SELECT CAST("10" as SIGNED) ; 看起来您的秩列是一个

为了修正分数表之外的排名,我把这个放进去

SELECT * from scores where tournament_id = "3" AND class = "MA1" ORDER BY Rank ASC
它出来了

1
11
12
13
2
22
3
31
4
5
6 and on, how can it be fixed? 

谢谢

您的排名列数据类型是字符串。因此,它返回如上所述,请将其转换为数字或整数格式

SELECT CAST("10" as SIGNED) ;
看起来您的秩列是一个文本列,例如varchar,因此,当您按它排序时,您按字典顺序排序。如果要对其进行数字排序,则需要显式转换:

选择* 从分数 其中,锦标赛id=3,类别=MA1 CASTrank的订单为整数ASC -这里-^
您应该强制转换类型char以按顺序对排名字段进行整型

排名字段的类型是什么?是整数型吗?顺便说一下,是varchar3。
SELECT * from scores 
  where tournament_id = "3" 
  AND class = "MA1" 
ORDER BY CAST(Rank AS INTEGER) ASC