如果我有我的数据库的表中调用product_tags
有2场:tag_id
和tag_name
如何在MySQL中搜索“标签”?
这里是架构:
CREATE TABLE `product_tags` (
`tag_id` int(11) NOT NULL auto_increment,
`tag_name` varchar(255) NOT NULL,
PRIMARY KEY (`tag_id`),
UNIQUE KEY `tag_name` (`tag_name`)
) ENGINE=MyISAM AUTO_INCREMENT=84 DEFAULT CHARSET=utf8
这里说的一些标签是:
- 黄金
- 黄钻
- 白金
- 玫瑰金
- 带
- 钻石
- 蓝钻
- 粉色钻石
- 黑钻
我想要做的字符串“黄金钻石带搜索“
我只想拉下面的标签:
- 黄金
- 带
- 钻石
因为只有这些标签是完全的字符串中。 黄色和钻石都在字符串中,但不在一起,所以yellow diamond
标签应该被忽略。
-Additionally如果可能的话
如果我做了搜索 “黄金蓝钻带”
我只是想拉以下标签:
- 黄色黄金
- 频段
- 蓝钻
的diamond
标签会被忽略,因为blue diamond
标签将是比赛。
我该怎么做?
+1哇,这是伟大的! – 2010-10-07 16:53:09
回答了第一个问题,但运行第二个输入查询我也得到了“钻石”标签。 – vulkanino 2010-10-07 16:53:41
如何使用“继承”或什么的表?即具有两列的表格,两个外键插入到您的标记表中,指定一个替代另一个。例如,“蓝钻石”取代“钻石”。所以如果你得到结果并且你看到你有“蓝色钻石”,你可以从结果中删除“钻石”。 – EboMike 2010-10-07 17:01:44