python - 如何正确排序其中包含数字的字符串

标签 python mysql sql

我有以下元素:

- Orange Is the New Black, Season 1, Ep. 1 -- I Wasn't Ready
- Orange Is the New Black, Season 1, Ep. 10 -- Bora Bora Bora
- Orange Is the New Black, Season 1, Ep. 2 -- Tit Punch

目前,我正在执行 SELECT title FROM table ORDER BY title

我如何在 mysql 中正确排序?也就是说,所以结果是:

- Orange Is the New Black, Season 1, Ep. 1 -- I Wasn't Ready
- Orange Is the New Black, Season 1, Ep. 2 -- Tit Punch
- Orange Is the New Black, Season 1, Ep. 10 -- Bora Bora Bora

最佳答案

只要title字符串的格式没有改变,
可以在order by子句中使用substring_indexcast进行排序。

select * from table
order by
cast(SUBSTRING_INDEX( title, ', Ep. ', -1 ) as decimal);

关于python - 如何正确排序其中包含数字的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22433188/

相关文章:

Python REST API 发布列表

php - .htaccess 从 MySQL 读取

mysql - #1054 - MySQL 中 'proximite' 中的未知列 'where clause'

sql - 在单个 SQL 查询中两次使用不同的列值?

sql - 比较两个 SQL Server 数据库(架构和数据)的最佳工具是什么?

python - Django 表单 - 每个模型的表单字段

python - 我的 python 脚本和 cron 作业有什么问题?

python wnck 在 pdb.set_trace() 之前不返回任何数据

sql - 加入 "exists"子查询

php - PHP 中如何将数组赋值给字符串?