【问题标题】:MySQL: return max of the last 5 digits from columnMySQL:从列中返回最后 5 位的最大值
【发布时间】:2011-12-01 00:24:37
【问题描述】:

只需要mysql查询中正则表达式的帮助:

column ISRC
GBCQV0700378
GBCQV0700382
GBCQV0700387

我需要00387返回给我(最大的数字) 我正在使用:

SELECT max(ISRC) REGEXP "/(\d{5})$/" FROM digital_info; // returns 0

SELECT max(ISRC) FROM digital_info as m where (ISRC REGEXP "/(\d{5})$/"); // returns NULL

请?


感谢已经回答的那两个 - 这些将是上述解决方案。 但现在我意识到我需要它更复杂一点:

不是所有的 ISRC 都有 GBCQV 前缀,但我只需要来自 GBCQV 前缀的 MAX?

column ISRC
GBCQV0700378
SOME00125963
GBCQV0700382
GBCQV0700387

但我仍然需要将 00387 还给我

【问题讨论】:

    标签: mysql regex


    【解决方案1】:

    使用基于字符串的RIGHT()函数:

    SELECT MAX(RIGHT(ISRC, 5)) ...
    

    【讨论】:

    • 我从来没有想过使用 RIGHT()!肯定需要从编码中休息一下......谢谢!
    【解决方案2】:
    SELECT MAX(SUBSTRING(ISRC, -5)) FROM digital_info WHERE LEFT(ISRC) = "GBCQV";
    

    【讨论】:

    • 感谢您的回答,但我刚刚意识到我需要比我刚才问的更复杂。我已经编辑了我的原始帖子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 2012-02-22
    • 2021-02-15
    • 2011-04-15
    • 2019-06-24
    • 1970-01-01
    相关资源
    最近更新 更多