Mybatis MySQL不固定查询条件,结果聚合合并返回

1.序

条件当做结果,有N个号码不固定,如何一次性查询,不然就循环查询效率低

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 ;

查询出的结果长这样,如何写XML
在这里插入图片描述

2.XML写法

测试类
在这里插入图片描述
xml写法,关键在于使用xml foreach中拼接字符串,把union all当做字符拼接
在这里插入图片描述
结果,非常完美
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Ying_ph/article/details/134511017