首页 > 开发 > MySQL > 正文

一个很复杂的MYSQL排序实现

2017-09-08 09:11:25  来源:网友分享

两个字段:

a1,2,3,4

b3,5,6,7

现在我需要按照(a求和/b求和) 来进行ORDER BY排序,请问MYSQL能否实现

解决方案

写个自定义函数。假设,a b 严格用逗号(,)隔开

delimiter $$DROP FUNCTION IF EXISTS `my_add` $$create function my_add(_str varchar(250))returns DECIMALbegin       declare pos DECIMAL;       declare num DECIMAL;       declare re DECIMAL;       set num = 0;       set re = 0;       set pos = locate(',',_str);       loop1: while pos > 0 do           set num = cast(left(_str,pos-1) as DECIMAL);           set re = re + num;           set _str = SUBSTRING(_str,pos+1);           set pos = locate(',',_str);       end while loop1;       set num = cast(_str as DECIMAL);       set re = re + num;       return(re);end$$select my_add('1,2,3,4,5')$$# output 15