热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQL查询中使用LIKE与CONCAT结合的方法

本文介绍了如何在SQL查询中通过使用LIKE和CONCAT函数结合来实现复杂的字符串匹配条件,特别是在处理多表联接和分组数据时的应用。

在SQL查询中,有时需要根据部分匹配或动态生成的字符串条件来筛选数据。下面的示例展示了如何使用LIKE和CONCAT函数来实现这一需求,并同时处理多个表之间的联接和数据聚合。

以下是具体的SQL语句:

SELECT
(@i := @i + 1) AS number,
x.uuid,
x.payment_code,
x.supplier_name,
x.receive_money,
x.is_export_flag,
x.export_time,
x.payer,
x.region_name,
x.user_name,
x.marketer_id,
x.region_id
FROM
(
SELECT DISTINCT
a.uuid,
a.payment_code,
a.supplier_name,
a.receive_money,
CASE
WHEN a.is_export_flag = 0 THEN '未导出'
ELSE '已导出'
END AS is_export_flag,
a.export_time,
b.payer,
d.region_name,
GROUP_CONCAT(DISTINCT f.user_name SEPARATOR ', ') AS user_name,
e.marketer_id,
d.uuid AS region_id
FROM
biz_lc_payment_info a
INNER JOIN biz_lc_payment_invoice_info b ON a.payment_id = b.payment_id
LEFT JOIN biz_item_company c ON b.payer = c.item_company_name AND c.sys_status = 1
LEFT JOIN biz_item_region d ON c.region_id = d.uuid AND d.sys_status = 1
LEFT JOIN biz_link_marketer_region e ON e.region_id = d.uuid AND d.sys_status = 1
LEFT JOIN sys_user f ON e.marketer_id LIKE CONCAT('%', f.uuid, '%') AND f.sys_status = 1
WHERE
a.sys_status = 1
AND b.sys_status = 1
GROUP BY
a.uuid
) x,
(SELECT @i := 0) AS y
WHERE
x.is_export_flag = '已导出'

上述SQL查询首先通过子查询从多个表中选择和聚合所需的数据,然后在外层查询中为每条记录添加一个行号(number)。子查询中的GROUP_CONCAT函数用于将多个用户的名称合并成一个字符串,而LIKE与CONCAT的结合则用于灵活地匹配marketer_id字段中的部分值。最后,外层查询还通过WHERE子句过滤了已导出的数据。


推荐阅读
  • mysql 分库分表策略_【数据库】分库分表策略
    关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多, ... [详细]
  • 深入解析MySQL中的七种JOIN查询
    本文详细介绍了MySQL中常用的七种JOIN查询方法,包括内连接、左外连接、右外连接、全外连接以及排除连接等,并通过实例进行说明。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 本文详细介绍了如何使用Python中的xlwt库将数据库中的数据导出至Excel文件,适合初学者和中级开发者参考。 ... [详细]
  • Vue 3.0 翻牌数字组件使用指南
    本文详细介绍了如何在 Vue 3.0 中使用翻牌数字组件,包括其基本设置和高级配置,旨在帮助开发者快速掌握并应用这一动态视觉效果。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • Node.js模块化的优势及实践
    本文探讨Node.js模块化的重要性和具体实现方式,包括其带来的代码复用性增强、可维护性提升、以及如何有效避免命名冲突等问题。 ... [详细]
  • 探讨 HDU 1536 题目,即 S-Nim 游戏的博弈策略。通过 SG 函数分析游戏胜负的关键,并介绍如何编程实现解决方案。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • CSS高级技巧:动态高亮当前页面导航
    本文介绍了如何使用CSS实现网站导航栏中当前页面的高亮显示,提升用户体验。通过为每个页面的body元素添加特定ID,并结合导航项的类名,可以轻松实现这一功能。 ... [详细]
  • 本文详细介绍了如何在现有的Android Studio项目中集成JNI(Java Native Interface),包括下载必要的NDK和构建工具,配置CMakeLists.txt文件,以及编写和调用JNI函数的具体步骤。 ... [详细]
  • 本文通过探讨React中Context的使用,解决了在多层级组件间传递状态的难题。我们将详细介绍Context的工作原理,并通过实际案例演示其在项目中的具体应用。 ... [详细]
  • ODB 2.1.0 版本现已推出,此更新引入了多项新功能,如通过访问器、修饰符、函数及表达式访问数据成员,支持虚拟数据成员,并允许在数据成员上直接定义数据库索引等。 ... [详细]
author-avatar
mobiledu2502924121
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有