MySQL и PHP используя ранг по ASC - PullRequest
2 голосов
/ 09 марта 2020

Пытаясь исправить рейтинг в таблице результатов, я вставил это;

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? 

Спасибо

Ответы [ 3 ]

0 голосов
/ 09 марта 2020

Похоже, ваш столбец rank является текстовым столбцом (например, varchar), и поэтому, когда вы заказываете его, вы заказываете лексикографически . Если вы хотите отсортировать численно , вам необходимо явно преобразовать его:

SELECT   * 
FROM     scores
WHERE    tournament_id = "3" AND class = "MA1"
ORDER BY CAST(rank AS INTEGER) ASC
-- Here -^
0 голосов
/ 09 марта 2020
SELECT * from scores 
  where tournament_id = "3" 
  AND class = "MA1" 
ORDER BY CAST(Rank AS INTEGER) ASC

Вы должны привести тип char к int вашему рейтинговому полю для заказа на

0 голосов
/ 09 марта 2020

Ваш тип данных столбца рейтинга является строкой. Таким образом, он возвращается, как указано выше, пожалуйста, конвертируйте его в число или формат int.

SELECT CAST("10" as SIGNED) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...