Mybatis MySQL does not fix query conditions, and the results are aggregated and returned

1. Preface

The condition is used as the result. There are N numbers that are not fixed. How to query them all at once? Otherwise, the query efficiency will be low.

SELECT IF(phoneNumber !='' , phoneNumber , NULL) as phoneNumber, IFNULL(operator , NULL) as operator  
FROM (  
  (SELECT 
  (SELECT '') as phoneNumber, 
  (SELECT operator FROM ct_segment_number_info WHERE segment_number = SUBSTRING('', 1, 7)) as operator) 
  UNION ALL  
  (SELECT 
  (SELECT '150') as phoneNumber, 
  (SELECT operator FROM ct_segment_number_info WHERE segment_number = SUBSTRING('150', 1, 7)) as operator) 
  UNION ALL  
  (SELECT 
  (SELECT '13696025385') as phoneNumber, 
  (SELECT operator FROM ct_segment_number_info WHERE segment_number = SUBSTRING('13696025385', 1, 7)) as operator) 
  UNION ALL  
  (SELECT 
  (SELECT '13016749117') as phoneNumber, 
  (SELECT operator FROM ct_segment_number_info WHERE segment_number = SUBSTRING('13016749117', 1, 7)) as operator)  
) AS phoneNumbers ;

The query result looks like this, how to write XML
Insert image description here

2.XML writing method

Test class
Insert image description here
The key to writing xml is to use xml foreach to splice strings and use union all as character splicing
Insert image description here
The result is perfect
Insert image description here
Insert image description here

Guess you like

Origin blog.csdn.net/Ying_ph/article/details/134511017