【发布时间】:2013-02-10 10:09:27
【问题描述】:
我正在为我的网站创建一个搜索功能,因此我从主表中获取关键字,并将这些关键字汇总为通过 id 链接到主表的辅助表中的键。
我的设置如下所示:
-------------------------------------------------- ---
|物品 |
-------------------------------------------------- ---
| ID |姓名 |价格 |
-------------------------------------------------- ---
| 1 | CPU | 199.95 |
| 2 | GPU | 249.95 |
| 3 | GPU | 225.95 |
-------------------------------------------------- ---
-------------------------------------------------- ---
|键 |
-------------------------------------------------- ---
| ID |物品名称 | item_id |
-------------------------------------------------- ---
| 1 | CPU | 1 |
| 2 | GPU | 2 |
| 3 | GPU | 3 |
-------------------------------------------------- ---
请记住,我的表更复杂,为每一行生成许多键。
我的问题是,如果有很多重复的关键字,关键字表会变得非常大。因此,我的问题是:
是否有可能以某种方式在 mySQL 中对每个唯一 item_name 的 id 进行分组,所以如果有人搜索 GPU,输出将是 2 和 3?
我认为您可以使用例如分隔字符串中的值。像这样的逗号:
-------------------------------------------------- ---
| 2 | GPU | 2,3 |
-------------------------------------------------- ---
但是我觉得当项目中的一个项目被删除并且我需要更新我的键表并可能从字符串“1,3,5,7,10,15”中删除一个 Id=5 时,它会变得复杂......
是否有一种将同名键链接到多个条目的智能方法?或者我是否总是需要一个正则表达式,甚至可能是 PHP,来分隔这些值?
【问题讨论】:
标签: mysql regex search key unique