一、創建表(test 和 sp)
CREATE TABLE `test` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`name_code` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `sp` (
`id` int(11) NOT NULL,
`sss` varchar(255) DEFAULT NULL,
`price` decimal(10,2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入數據
INSERT INTO `test` (`id`, `name`, `name_code`) VALUES (1, 'zhangsan', '1,2,3,4,5');
INSERT INTO `test` (`id`, `name`, `name_code`) VALUES (2, 'lisi', '1,2,3,4');
INSERT INTO `sp` (`id`, `sss`, `price`) VALUES (1, '蘋果', 11.00);
INSERT INTO `sp` (`id`, `sss`, `price`) VALUES (2, '香蕉', 22.00);
INSERT INTO `sp` (`id`, `sss`, `price`) VALUES (3, '梨', 33.00);
INSERT INTO `sp` (`id`, `sss`, `price`) VALUES (4, '橘子', 44.00);
INSERT INTO `sp` (`id`, `sss`, `price`) VALUES (5, '芒果', 55.00);
INSERT INTO `sp` (`id`, `sss`, `price`) VALUES (6, '菠蘿', 66.00);
二、兩張表對應關系
sql語句
SELECT
t1.name,
t1.rn,
s1.sss,
s1.price
FROM(
SELECT
a.name name,
substring_index(substring_index( a.rn,',',b.help_topic_id + 1),',' ,- 1) AS rn
FROM
(select name,name_code as rn from test where name = 'lisi') a
JOIN mysql.help_topic b ON b.help_topic_id < (length(a.rn) - length( replace(a.rn, ',', '') ) + 1)
) t1
LEFT JOIN sp s1 ON s1.id=t1.rn
結果