mysql - 如何使用字符串和整数值选择最大值

标签 mysql

嗨,我有下表..

offer_number      training_title
**************
    ABC-1          SEMINAR
    ABC-9          SEMINAR
    ABC-10         SEMINAR
    ABCD-9         TRAINING
    EFGH-9         TESTING
    EFGH-10        TESTING

MySQL

SELECT *, MAX(offer_number) as offer_number_latest FROM (`training_program`) WHERE `training_title` LIKE '%SEMINAR%' GROUP BY `training_title` ORDER BY `offer_number` desc

我想生产 ABC-10 但 我总是得到 ABC-9 而不是 ABC-10。

示例 2:

 SELECT *, MAX(offer_number) as offer_number_latest FROM (`training_program`) WHERE `training_title` LIKE '%TESTING%' GROUP BY `training_title` ORDER BY `offer_number` desc  

我需要结果 EFGH-10 但 我总是得到 EFGH-9 而不是 EFGH-10。

最佳答案

如果每个training_title的offer_number前缀始终相同,则以下(讨厌的)查询将起作用:

select training_title, 
  concat(
    left(offer_number, 
      locate('-', offer_number)
    ), 
    max(
      cast(substring(offer_number, locate('-', offer_number) + 1) as signed)
    )
  ) from offers group by training_title

demo here

关于mysql - 如何使用字符串和整数值选择最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30433090/

相关文章:

mysql - 查询错误 (1248) : Every derived table must have its own alias INNER JOIN

MySQL。只计算我列值的一部分

PHP 7.0.10 - $_Post 不可用

php - 创建唯一标识

mysql - 日期/时间输入参数

mysql - 在 SQL 中使用 EXISTS 会忽略选定的列?

mysql - 根据 WHERE 语句中的值更改顺序

php - Zend Framework 多表查询

mysql - 如何在mysql中定义一个表来保存4个非强制下拉值

mysql - 将 html 存储在数据库中以供使用有哪些缺点?