mysql获取字符串中多个数值的最大值

VCXIAOHEI 2016-01-23 07:32:42
如数据
YJV-3*50+1*25 取最大值50
JKLGYJ-1-120/20 取最大值120
YJV-4*70+1*35 取最大值70
利用数据库自带函数或自己建立函数或其它方法实现都可以
望大家多多帮助
...全文
713 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
VCXIAOHEI 2016-01-27
  • 打赏
  • 举报
回复
自己写了个函数,只能取整数最大值,小数有点问题,不过已经满足我的需求了,贴出来给大家分享下。 CREATE DEFINER=`root`@`localhost` FUNCTION `FindMaxNumber`(_input VARCHAR(64)) RETURNS float BEGIN DECLARE _r VARCHAR(32) DEFAULT ''; DECLARE _i INTEGER DEFAULT 1; DECLARE _t BOOLEAN DEFAULT TRUE; DECLARE _start INTEGER DEFAULT 0; DECLARE _IsCharNumeric BOOLEAN; DECLARE _maxnum FLOAT DEFAULT 0; DECLARE _num FLOAT DEFAULT 0; WHILE _i < length(_input) DO _loop: REPEAT SET _IsCharNumeric = locate(mid(_input, _i, 1), ".0123456789") > 0; IF _IsCharNumeric THEN IF _t THEN SET _t = FALSE; SET _start = _i; END IF; ELSE IF _start > 0 THEN LEAVE _loop; END IF; END IF; SET _i = _i + 1; UNTIL _i > length(_input) END REPEAT; IF _start > 0 AND NOT _t THEN SET _t = TRUE; SET _r = mid(_input, _start, _i - _start); SET _num = convert(_r,DECIMAL); SET _maxnum = greatest(_maxnum,_num); END IF; SET _i = _i+1; END WHILE; RETURN _maxnum; END
  • 打赏
  • 举报
回复
你先建个表,输入 *,-,/ 等字符,然后按照这些字符来拆分字符串,取得数值,然后求出最大的数字是多少
道玄希言 2016-01-25
  • 打赏
  • 举报
回复
记录不多,在数据库里处理还行, 如果数据量大了, 你放数据库来分析, 估计够呛
ACMAIN_CHM 2016-01-24
  • 打赏
  • 举报
回复
这个建议自己写存储过程来实现。 在存储过程对对字符串逐字分析即可。

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧