嗨,我有下表..
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
关于mysql - 如何使用字符串和整数值选择最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30433090/