mysql 树状结构数据列拼接名称 结果集中巧妙增加子表查询语句 核心思路类似于 spilt 函数的思想

 切记:以后把常用的这种拼接列的名称都维护进表里,不要图一时之快就维护一个ID;

SELECT
	(
	SELECT
		GROUP_CONCAT( department_name SEPARATOR '-' ) 
	FROM
		platform_department p 
	WHERE
		p.del_flag = 'N' 
		AND p.path LIKE CONCAT( "%", pd.department_id, "%" ) 
	) AS aaa,
	department_id AS id,
	path,
	`level`,
	department_id,
	enterprise_id,
	department_name,
	del_flag,
	create_time 
FROM
	platform_department pd 
WHERE
	del_flag = 'N' 
	AND enterprise_id = '1412603260791558145'

上边是错误示范想简单了,path跟拼接出来的aaa列明显对不上,下半部分是正确操作,请指教!!!

SELECT
	(
	SELECT
		GROUP_CONCAT( department_name ORDER BY p.`level` ASC SEPARATOR '-' ) 
	FROM
		platform_department p 
	WHERE
		p.del_flag = 'N' 
		AND FIND_IN_SET( p.department_id, REPLACE ( pde.path, "/", "," ) ) 
	) AS department_names,
	path,
	`level`,
	department_id,
	department_name,
	enterprise_id,
	del_flag,
	create_time 
FROM
	platform_department pde 
WHERE
	del_flag = 'N' 
	AND enterprise_id = '1412603260791558145'

### 如何使用 `Split` 函数分割字符串 在多种编程语言中,`Split` 是一种常用的函数,用于按照指定的分隔符将字符串拆分为多个部分。以下是关于如何在不同语言中使用 `Split` 函数的具体说明。 #### Visual Basic (VB/VBScript) 在 VB 或 VBScript 中,`Split` 函数可以用来按特定字符或字符串作为分隔符来拆分输入字符串[^1]。其基本语法如下: ```vb Dim result As String() result = Split(expression, delimiter, limit, compare) ``` - **expression**: 要被拆分的原始字符串。 - **delimiter**: 用作分隔符的字符串,默认为空格 (" ")。 - **limit**(可选): 表示返回数组的最大长度。 - **compare**(可选): 指定比较方法(如 vbBinaryCompare 或 vbTextCompare)。 例如,如果要通过逗号 `,` 将字符串 `"apple,banana,cherry"` 进行分割,则代码如下: ```vb Dim myString As String = "apple,banana,cherry" Dim parts() As String = Split(myString, ",") ' 使用 "," 作为分隔符 For Each part In parts Console.WriteLine(part) Next ``` 上述代码会输出每一项水果名称到控制台。 --- #### Python Python 的内置字符串类也提供了类似的 `.split()` 方法[^2]。它的功能与 VB 类似,但更简洁易用。下面是一个简单的例子: ```python my_string = "line1\nline2\nline3" lines = my_string.split("\n") # 使用 "\n" 作为分隔符 for line in lines: print(line) ``` 此脚本将会逐行打印出每一段文字内容。 --- #### Kotlin 对于现代开发环境下的 Kotlin 编程者来说,他们同样拥有强大的工具集来进行字符串处理工作,其中包括了灵活多变的 `split` 函数[^3]。这里给出一个基础示范: ```kotlin val input = "hello world example test" val words = input.split(" ") words.forEach { println(it) } ``` 这段程序能够依据空格把整个句子分解成单独单词并逐一展示出来。 --- #### 总结 无论是在传统的桌面应用程序还是新兴跨平台解决方案里,“分裂”操作都是不可或缺的一部分;掌握好这些技巧可以帮助开发者更加高效地完成日常任务需求!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值