首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mySQL将关键字链接到多个条目

使用mySQL将关键字链接到多个条目
EN

Stack Overflow用户
提问于 2013-02-10 18:09:27
回答 1查看 46关注 0票数 0

我正在为我的网站创建一个搜索功能,因此我从主表中提取了关键字,并将这些关键字总结为通过id链接到主表的辅助表中的关键字。

我的设置如下所示:

项目列表

| Id:*|名称:*|*||*

KEYS__|键值

Id : item_name  :item_id :|item_name  |item_id :*

|1%微处理器内核| CPU微处理器|1%微处理器|1%CPU微处理器|1%CPU微处理器||1%CPU微处理器|1%CPU微处理器|微处理器|微处理器微处理器微

|2微处理器微处理器| GPU微处理器|2微处理器|微处理器微处理器|微处理器

|3%微处理器微处理器| GPU微处理器|3%微处理器|GPU微处理器|微处理器微处理器|微处理器

我的问题是,如果有很多重复的关键字,关键字表就会变得非常大。因此,我的问题是:

有没有可能以某种方式将每个唯一的item_name的id分组在mySQL中,这样如果有人搜索GPU,输出将是2和3?

我想你可以在一个字符串中使用例如来分隔这些值。逗号如下:

|2微处理器| GPU微处理器|2微处理器|2微处理器|GPU微处理器|2微处理器|GPU微处理器|微处理器|微处理器微处理器

有没有一种聪明的方法可以将相同的名称键链接到多个条目?或者,我是否总是需要一个正则表达式,甚至是PHP来分隔这些值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-10 18:22:10

不要在数据库表中使用CSV,而是使用联接来选择数据。

您应该能够生成如下输出:

代码语言:javascript
复制
select count(*) as cnt
      ,k.item_name
      ,group_concat(k.item_id) as ids
from keys k
inner join items i ON (i.id = k.id)
where i.price = 199.95

group_concat将动态生成CSV,因此您不必将CSV存储在数据库中。如果需要多行输出,可以使用group by子句。

请参阅:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

请注意,这与regex无关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14796626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档