【发布时间】:2014-01-09 01:09:11
【问题描述】:
我有如下三张表
http://sqlfiddle.com/#!2/82212/6:
CREATE TABLE IF NOT EXISTS `cat` (
`id` int(15) NOT NULL AUTO_INCREMENT,
`color_options` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
);
INSERT INTO `cat` (`id`, `color_options`) VALUES (1, '1,2,3,4');
CREATE TABLE IF NOT EXISTS `template` (
`id` int(15) NOT NULL AUTO_INCREMENT,
`cat_id` int(15) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
);
INSERT INTO `template` (`id`, `cat_id`) VALUES (1, 1);
CREATE TABLE IF NOT EXISTS `color` (
`id` int(15) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT '',
`code` varchar(6) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
);
INSERT INTO `color` (`id`, `name`, `code`) VALUES
(1, 'Black', '000000'),
(2, 'Red', 'FF0000'),
(3, 'Blue', '0000FF'),
(4, 'Green', '00FF00');
如果我跑了
SELECT *
FROM template
LEFT JOIN cat ON cat.id=template.id;
然后我会得到
id cat_id color_options
1 1 1,2,3,4
如何获取文本中的颜色选项(黑色、红色、蓝色、绿色)而不是纯数字?
我尝试使用 join,但它不适用于 csv 字段。
提前致谢
【问题讨论】:
-
规范化你的数据库,你就不会遇到这样的问题了。如果你不知道这意味着什么,我听说过这本书的好东西,数据库设计为凡人。