使用 MySQL,按分隔符拆分列并用另一列中的值替换数字。
我有一个名为“路径”的列,其路径类似于“/426/427/428”。我想用类别名称替换类别编号。结果将类似于“/计算机/其他附件/激光打印机”。
这个 mysql 查询似乎是一个好的开始,但不知道如何从 'categories' 表、'path' 列中获取列值。
select distinct
SUBSTRING_INDEX(SUBSTRING_INDEX((SELECT TRIM(LEADING '/' FROM '/426/427/428')), '/', numbers.n), '/', -1) name
from
(select @rownum := @rownum + 1 as n
from categories
cross join (select @rownum := 0) r
) numbers
where n > 0
order by
n
现在,此查询将字符串正确拆分为:
426
427
428
接下来会是这样的结果:
id name
426 Computers
427 Other accessories
428 Laser printers
最后应该将“名称”列合并到
'/Computers/Other accessories/Laser printers'
细绳。
提前感谢您的帮助!
我收到以下查询:
结果是:
这几乎是好的,只需要将名称列与分隔符合并即可。
所以最终的查询是:
我们得到如下查询结果: