sql - 如何按列的一部分排序?

标签 sql mysql

我想使用某些列的一部分来创建order by内容。例如,user列的一些记录如下所示

vip1,vip2,vip21,vip10,vip100

如果我按用户订购,订单将为

vip1,vip10,vip100,vip2,vip21

那我怎样才能得到如下结果

vip1,vip2,vip10,vip21,vip100

谢谢。

最佳答案

什么是 RDBMS?

对于 SQL Server 来说,要进行数字排序而不是字典排序,它会类似于

ORDER BY CAST(RIGHT(col, LEN(col)-3) AS INT)

对于 MySQL

ORDER BY CAST(RIGHT(col, LENGTH(col)-3) AS UNSIGNED)

但是如果所有行都相同,为什么还要存储 vip 部分呢?

关于sql - 如何按列的一部分排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3286446/

相关文章:

sql - 如何在 SQL 中打印到控制台?

sql - 通过 postgres 连接

MySQL 从另一列中选择查询 : SUM() rows with a distinct value,

sql - 学校评分系统需要架构

MySQL/SQL : Update with correlated subquery from the updated table itself

php - mysql语法问题

SQL Server 扁平化数据

mysql - 从日期转换为日期

MySQL:为什么我必须指定在该列上连接表时要使用的表列?

sql - 'in' 和 'not in' 计数不相加 - 怎么了?