在phpMyAdmin中编写SQL查询user_likes表的用户双向点赞匹配记录
查询双向匹配点赞记录SQL实现
实现逻辑
双向匹配的判定标准为同时存在两条对称的点赞记录:
- 当前登录用户点赞目标用户:
likedby_email = 登录用户邮箱,email = 目标用户邮箱 - 目标用户回赞当前登录用户:
likedby_email = 目标用户邮箱,email = 登录用户邮箱
可直接使用的查询语句
将语句中的@current_user_email替换为实际登录用户的邮箱即可:
SELECT DISTINCT ul1.email AS matched_email FROM user_likes ul1 INNER JOIN user_likes ul2 ON ul1.likedby_email = ul2.email AND ul1.email = ul2.likedby_email WHERE ul1.likedby_email = @current_user_email;
补充说明
- 自连接的查询方式性能优于子查询写法,数据量较大时表现更稳定
DISTINCT用于过滤重复数据,避免表内存在重复点赞记录时返回重复匹配结果- 若业务规则不允许用户点赞自己,可在WHERE条件中新增
AND ul1.email != ul1.likedby_email过滤异常数据 - 如需获取匹配用户的昵称、头像等其他信息,可在此查询基础上关联用户基础表做扩展查询
内容的提问来源于stack exchange,提问作者n s
相关产品推荐
相关产品推荐

