题
请告诉我查询MySQL中,最好的办法时,我想查询返回的所有行中值的匹配列表至少一个值中值的列表的至少一个值?
例如
如果我的表包含下列行:
name groups
item1 gr1, gr2
item2 gr1,gr2,gr3
item3 gr1,gr3
和我有值的列表: “GR3,GR4,GR5”
我要找到所有在我的表有值的至少一个GR3,在其领域的组GR4和GR5行。
因此,在这种情况下,查询应该返回ITEM2和项目3
我怎样才能构建没有我的脚本循环高效的查询?
解决方案
我个人认为这不是构建数据库的最佳方式。我想有一个链接表,像item_groups将举行一列的每个项目组联系,所以你有什么会有:
item_name group_name
item1 gr1
item1 gr2
item2 gr1
item2 gr2
item2 gr3
item3 gr1
item3 gr3
这种方式可以简单地做
SELECT item_name FROM item_groups WHERE group_name IN ('gr3','gr4','gr5');
这是我所覆盖数据库理论为我的学士学位的一部分,我被教导,并同时它在多个表的结果,它使搜索了很多更快,更容易。 HTH
不隶属于 StackOverflow