赞
踩
mysql中的一个表的某字段,假设为cds_var 表
- CREATE TABLE `cds_var` (
- `cds_value` varchar(100) NOT NULL,
- `id` int(11) NOT NULL AUTO_INCREMENT,
- PRIMARY KEY (`id`)
- )
表 trans_var为cds_value的映射表
- CREATE TABLE `trans_var` (
- `var_key` varchar(100) NOT NULL,
- `val_value` varchar(100) NOT NULL
- )
想要实现下图的效果
又该如何操作,参考https://www.cnblogs.com/Charles-Yuan/p/11086950.html
创建 中间表 var_index
- CREATE TABLE `var_index` (
- `id` int(11) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
插入一点点的数据
再来段sql
- SELECT b.id,GROUP_CONCAT(a.val_value) FROM trans_var a, (
- SELECT
- c.id,SUBSTRING_INDEX( SUBSTRING_INDEX( C.cds_value, ',', G.ID ), ',',- 1 ) IDS
- FROM
- cds_var C
- JOIN var_index G ON G.ID <= ( LENGTH( C.cds_value ) - LENGTH( REPLACE ( C.cds_value, ',', '' ) ) + 1 ) ) b
- WHERE a.var_key=b.IDS
- GROUP BY b.id
出现结果:完美解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。