扫码关注官方订阅号
现在要做一个“猜你喜欢的功能”,规则是这样的:查找与自己标签相似人,标签字段在数据库是这样的,存储的是标签id,以逗号分隔(1,2,3,4):假设我自己是1,5:那么我需要查找出 标签为 1 - 5 -1,5 -1,6 -2,5,8(- 为分隔符)
我如果写sql语句呢?
数据库为mysql
闭关修行中......
谢谢邀请。你参考MySQL的FIND_IN_SET函数查询。例如
MySQL
FIND_IN_SET
$tag = 5; SELECT `tag_ids` FROM 表名 WHERE FIND_IN_SET($tag, `tag_ids`);
看错了。。。我以为是算法。
感觉tag_ids 拆分成新表,更好
similar_text()
可以试试这个,计算字符串的相似度
这样的话,我觉着还是把,用户都关联到一个标签上更方便查询,一个sql用LIKE就出来了
需要写个自定义函数,在函数先讲传入的参数拆分为多个独立的tag,逐个判断是否在tag_ids字段内容中,以此来判断是否满足匹配的条件。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
谢谢邀请。你参考
MySQL的FIND_IN_SET函数查询。例如看错了。。。我以为是算法。
感觉tag_ids 拆分成新表,更好
similar_text()
可以试试这个,计算字符串的相似度
这样的话,我觉着还是把,用户都关联到一个标签上更方便查询,一个sql用LIKE就出来了
需要写个自定义函数,在函数先讲传入的参数拆分为多个独立的tag,逐个判断是否在tag_ids字段内容中,以此来判断是否满足匹配的条件。