小编dan*_*age的帖子

MySQL多重利益匹配问题

我有一个用户输入他们兴趣的数据库.我想找到兴趣相符的人.

兴趣表的结构是

interestid | username | hobby | location | level | matchinginterestids

让我们两个用户保持简单.

  • 用户Joe可能有10个不同的兴趣记录
  • 用户greg可能有10个不同的兴趣记录.

我想做以下算法

  • 以Joe的兴趣记录1为例,从兴趣数据库中寻找匹配的爱好和位置.将任何匹配的兴趣ID放在匹配字段中.然后去乔的兴趣记录2等.

我想我需要的是某种for循环,它将循环遍历所有joe的片段,然后每次在兴趣数据库中找到匹配时进行更新.这在MySQL中甚至可能吗?


进一步举例:

我是丹.我有3个兴趣.每个兴趣由3个科目组成:

  • 丹猫,营养,头发
  • Dan superlens,dna,显微镜
  • 丹电影,慢动作,fightscenes

其他人可能有其他兴趣

乔:

  • 乔猫,营养,力量
  • Joe superlens,dna,显微镜

  • Moe mysql,查询,php
  • 萌电影,specialfx,相机
  • Moe superlens,dna,显微镜

现在,当我以Dan身份登录时,我希望查询返回以下内容:

以下是您的兴趣匹配:

---有兴趣猫营养头发
Joe对猫和营养
感兴趣Joe和Moe对superlens,dna,显微镜
感兴趣Moe对电影感兴趣

查询需要遍历Dan的所有兴趣,并比较3,2,1个主题匹配.

我可以从循环中在php中执行此操作,但它会一直调用数据库来获取结果.我想知道是否有一种狡猾的方式使用单个查询来完成它或者可能是3个单独的查询,一个查找3个匹配,一个用于2,一个用于1.

mysql loops for-loop

3
推荐指数
1
解决办法
1486
查看次数

标签 统计

for-loop ×1

loops ×1

mysql ×1