mysql 變量定義 sql查詢


SET @idnoStr:='"idNo":"';
SELECT LOCATE(@idnoStr, param_array),
LOCATE('",', param_array,LOCATE('"idNo":"', param_array)),
SUBSTR(param_array,LOCATE('"idNo":"', param_array),
LOCATE('",', param_array,LOCATE('"idNo":"', param_array))-LOCATE('"idNo":"', param_array)
)
param_array FROM t_gl_adapter_param_input
 where creat_time BETWEEN '2018-12-01 16:37:41' and '2019-01-01 23:59:59'
and service_type='qianhaiHaoxinduHcService'
and param_array like '{"app%'

  見第一行;

分析號碼,並得出結果:

-- BEGIN
-- DECLARE idnoStr VARCHAR(8);
SET @idnoStr:='"idNo":"';
SELECT aa.serial_num,tmp_seqid_qh.*,d.content FROM 
(SELECT  serial_num, 
SUBSTR(param_array,
LOCATE(@idnoStr, param_array)+8,
LOCATE('",', param_array,LOCATE(@idnoStr, param_array))-LOCATE(@idnoStr, param_array)-8
)
idno FROM t_gl_adapter_param_input 
 where creat_time BETWEEN '2018-12-01 16:37:41' and '2019-01-01 23:59:59'
and service_type='qianhaiHaoxinduHcService'
and param_array like '{"app%'
) aa INNER JOIN tmp_seqid_qh on tmp_seqid_qh.idno=aa.idno
left join t_gl_adapter_param_record_content d on aa.serial_num = d.serial_num 
 HAVING d.content LIKE '{"bat%'


-- and param_array like (select idno from tmp_seqid_qh)	
-- END

  步驟:

一、導入臨時表

1、建表,在ext 菜單中建立;

2、在測試類中生產批量插入語句;

insert into tmp_seqid_qh(loanid,seqid,idno)values('NXJ18060111117ZG5U','1528091231073490S180F4F2C4523762','230307197101014010'); 

3、導入在當前表菜單中導入;

4、寫sql,在工具里導出XML;

5、用測試類分析xml並生成Excel數據語句;粘貼到Excel;

SET @idnoStr:='"sequence_id":"';
SET @len:=LENGTH(@idnoStr);
select 
a.serial_num, 
a.seq_id, 
d.content as record_param
from 
( 
SELECT 
serial_num, 
SUBSTR(
		param_array,
		LOCATE(@idnoStr, param_array) + @len,
		LOCATE(
			'",',
			param_array,
			LOCATE(@idnoStr, param_array)
		) - LOCATE(@idnoStr, param_array) - @len
) seq_id 
FROM t_gl_adapter_param_input 

where 
service_type = 'tongdunRuleDetailAnalysisHcService' 
and creat_time BETWEEN '2018-01-01' and '2018-07-01'

and SUBSTR(
		param_array,
		LOCATE(@idnoStr, param_array) + @len,
		LOCATE(
			'",',
			param_array,
			LOCATE(@idnoStr, param_array)
		) - LOCATE(@idnoStr, param_array) - @len
) in (SELECT tmp_seqid_qh.seqid FROM tmp_seqid_qh WHERE
 LENGTH(tmp_seqid_qh.seqid)!='')

order by creat_time desc -- limit 500 
) a  
left join t_gl_adapter_param_record_content d on a.serial_num = d.serial_num 

  上面的執行太慢,沒法使用!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM