php - MySQL。按字符串 ID 进行数字排序

标签 php mysql

我正在为飙车比赛制作现场比分。 我在数据库中有表

id      time
k2      16,010
k4      15,11
k25     15,819
k26     15,114
z27     19,696

我需要通过 id 以相反的顺序获取该表。 例如,如果选择 SELECT id FROM online order by id desc,结果将被排序为 string

id
k9
k8
k7
k6
k5
k4
k3
k17
k16
k15
k14

我需要 17-14-9-4

更新。 感谢所有! 这个有帮助

SELECT CAST( replace( id, 'k', '' ) AS SIGNED ) AS sort
FROM online
ORDER BY `sort` DESC

最佳答案

将字段分成两部分,一个带有“k”,另一个带有数字。

或者,不太可取的是,如果您使用 PHP,则可以使用 nat_sort() 方法,或者可能使用 strnatcmp() 的 usort() 用于比较此特定字段的函数。

关于php - MySQL。按字符串 ID 进行数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5782672/

相关文章:

php - 谷歌将 MySQL lat lng 映射到 JavaScript

c# - 在 .NET 中将多个非 SELECT MySQL 语句作为单个命令文本执行

javascript - Node.js mysql 连接和事务

MySQL:其中计数(*)= 0

mysql - 使用一个参数在 Rails 中搜索通配符多列

php - 当列格式为varchar时如何查询顺序为asc(或desc)

php - 返回最后 2 位数字

适用于 Android 的 PHP Google OAuth2 后端

php - 如何在php中实现字符串匹配的暴力算法?

php - 在组合框中一次选择两个 - 如何解决?