SET SESSION GROUP_CONCAT_MAX_LEN=10241024; -- 设置最大字符串长度,避免因字符长度不够影响查询结果
SELECT
dm.*
FROM
-- ------------------------- 查询所有层级开始----
-- @ids作为每一行的结果值
-- @l 按照层级查询,每一层查询一遍
(
SELECT
@ids AS _ids,
( SELECT @ids := GROUP_CONCAT( dimension_value_code ) FROM bgt_dimension_value WHERE FIND_IN_SET( parent_code, @ids ) ) AS cids,
@l := @l + 1 AS LEVEL
FROM
bgt_dimension_value,
( SELECT @ids := '10000100-P-YW', @l := 0 ) b
WHERE
@ids IS NOT NULL
) ID,
-- ------------------------- 查询所有层级开始
bgt_dimension_value dm
WHERE
FIND_IN_SET( dm.dimension_value_code, ID._ids ) -- 将表中所有行查询是否包含在集合科目中
AND dm.ACCOUNT_CODE='YW_JDYW_JDSD'
ORDER BY
dimension_value_code DESC;