select
CASE when @bankAccountName=a.bankAccountName and (
(find_in_set(a.birthday,@allbirthday)>0 and find_in_set(a.mobile,@allmobile)>0)
or (a.birthday='0001-01-01' and find_in_set(a.mobile,@allmobile)>0)
)
then -1 else 0 end as delete_row
,find_in_set(a.birthday,@allbirthday),find_in_set(a.mobile,@allmobile)
,@group_row:=case
when @bankAccountName=a.bankAccountName and find_in_set(a.birthday,@allbirthday)=0 and a.birthday!='0001-01-01' then @group_row+1
when @bankAccountName=a.bankAccountName and (find_in_set(a.birthday,@allbirthday)>0 or (a.birthday='0001-01-01' and find_in_set(a.mobile,@allmobile)=0)) then @group_row
else 1 end as groupRow
,@allbirthday:=case when @bankAccountName=a.bankAccountName then concat(@allbirthday,',',a.birthday) else a.birthday end as allbirthday
,@allmobile:=case when @bankAccountName=a.bankAccountName then concat(@allmobile,',',a.mobile) else a.mobile end as allmobile
,@bankAccountName:=a.bankAccountName as bankAccountName
,a.*
from t11 a ,(select @group_row:=1, @bankAccountName:='',@allbirthday:='',@allmobile:='') as b
ORDER BY a.bankAccountName,a.birthday desc,a.mobile
;

 

参考:https://www.cnblogs.com/zhanglixuan/p/10651275.html

posted on 2019-08-30 14:32  cathy_ming  阅读(185)  评论(0编辑  收藏  举报