首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阿尔法数字不工作的MySQL命令

阿尔法数字不工作的MySQL命令
EN

Stack Overflow用户
提问于 2018-04-26 07:56:19
回答 2查看 159关注 0票数 0

下面是这样的情况,我使用了这样一个MySQL查询

代码语言:javascript
复制
SELECT 
    *
FROM
    tbl_name
WHERE
    id = 1
ORDER BY LENGTH(title), title;

但是当有这样的标题时

科南侦探第797.5集英文版

科南侦探第829.2集英文版

它变成了

科南侦探第897部英文版

科南侦探第898部英文版

科南侦探第797.5集英文版

科南侦探第829.2集英文版

正确的一个必须像这个

科南侦探第797.5集英文版

科南侦探第829.2集英文版

科南侦探第897部英文版

科南侦探第898部英文版

在MySQL查询中,是否有可能按照我想要的进行排序?或者我应该重新设计表格结构,并在一个新的专栏中拆分插集号。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-04-26 07:59:03

我误解了你最初的要求。试试这个:

代码语言:javascript
复制
SELECT 
    *
FROM
    tbl_name
WHERE
ORDER BY CAST(title AS UNSIGNED), title;

查看这里的小提琴示例:http://sqlfiddle.com/#!9/755b97/2

编辑:这似乎只有当数字在前面时才起作用。

这似乎是解决问题的唯一解决方案,但代价是沉重的负担:Natural Sort in MySQL

其他解决方案是让您切换到MySQL8.0,它引入了regexp_replace,允许您从字符串中提取数字,然后再使用the_result_of_your_regexp命令。不过还是很重的。

票数 0
EN

Stack Overflow用户

发布于 2018-04-26 08:13:56

@Aurelien如果我使用:

代码语言:javascript
复制
SELECT 
    *
FROM
    tbl_name
WHERE
    id = 1
ORDER BY LENGTH(title) DESC, title DESC

但是如果图片上的标题是这样的话,还是有问题的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50037699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档