mysql - 从 MySQL 中的 varchar 列获取最大值
问题描述
我需要从 varchar 类型的列中获取最大值。该值不太复杂,只是简单的值,例如CAR 001
(不带空格),CAR 002
(不带空格),CAR 003
(不带空格)。
我尝试了其他类似问题的任何答案,但我的 SQL 语法总是出错,我尝试的最后一个是
SELECT MAX(CONVERT(`code`, UNSIGNED)) AS MAX FROM `account`
,但我得到的是0。真正的必须是3。请帮助我,抱歉英语不好。
解决方案
尝试使用SUBSTRING_INDEX
隔离数字部分:
SELECT *
FROM yourTable
WHERE SUBSTRING_INDEX(col, ' ', -1) = (SELECT MAX(SUBSTRING_INDEX(col, ' ', -1))
FROM yourTable);
假设只有一条记录具有最大 ID,我们可以更简单地使用LIMIT
查询:
SELECT *
FROM yourTable
ORDER BY SUBSTRING_INDEX(col, ' ', -1) DESC
LIMIT 1;
推荐阅读
- python - 检查数组是否包含numpy中的特定字符串
- jquery - 使用 shinyjs 切换表单水平输入及其标签
- wordpress - Wordpress 图像不再具有 srcset 并显示像素化图像
- elasticsearch - Elasticsearch - 如何从日期时间字段中提取日期并将其作为新字段添加到每个文档中
- python - importlib 中的方法具有相同的功能 imp.load_source
- pm2 - 我应该使用 pm2 的特殊用户来运行我的快速应用程序吗?
- c# - 为什么单击视图中的过滤器按钮时页面会刷新?
- sql - 我如何调试 SQL 子查询问题
- python - 如何跟踪python相对进口?
- c# - 调用 UserManager.AddToRoleAsync() 时,分离的实体导致跟踪异常