我购买了一个数据库,其中包含非零填充的字母数字高尔夫球场“号码”,例如 ZZ-1、ZZ-2、ZZ-9、ZZ-10...
我需要编写一个查询,该查询将提取 MAX 数值,并且 MAX 在字符串上使用时不会 DWIM,并将 ZZ-9 排序为 MAX 而不是 ZZ-10。
SELECT MAX( CourseNumber ) AS x
FROM courses
WHERE CourseNumber
RLIKE 'ZZ'
仅选择数字时出现同样的问题:
SELECT MAX(SUBSTR(CourseNumber, 4)) AS x
FROM courses WHERE CourseNumber RLIKE 'ZZ'
谁有聪明的方法来做到这一点?我认为它必须涉及 SUBSTR 但我不知道如何让它工作。
最佳答案
SELECT MAX(
CAST(
SUBSTRING(CourseNumber, 4) AS UNSIGNED)
)
FROM courses WHERE CourseNumber RLIKE 'ZZ'
关于mySQL 字母数字字符串排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5265249/