PHP MySQL 使用标签显示相关项目
我想使用标签显示类似的项目。
我的项目表以 itemid
、itemname
和 itemtagids
作为列。 itemtagids
具有 CSV 标签 ID。
假设在 itemid 1
中,我有 3 个标签 id 1,2,3
,在 itemid 2
中,我有 4 个标签 id 3,
我有 2 个标签 ID itemid 3
中的 4,5,62,3
等等..
我想要 itemid 1
代码> 类似项目中的第 3 个itemid
应该首先显示(因为它有 2 个匹配),然后是 itemid 2
等等。
我使用的是:
SELECT itemid
FROM items
WHERE MATCH (itemtagids ) AGAINST ('2823' IN BOOLEAN MODE)
它仅在存在的情况下返回结果是 itemtags
ids 列中的一个 itemtagid
。
序列是谎言: 234,546,2823,342,5643
所以,这里 2823 不是一个单独的单词,而是来自 234,54...43 的完整字符串,
在这种情况下应该做什么,标签是以 ids 形式和 CSV 格式。
I want to show similar items using tags.
I have items table with itemid
, itemname
and itemtagids
as columns. itemtagids
has CSV tag ids.
Say in itemid 1
, I have 3 tag ids 1,2,3
and in itemid 2
I have 4 tag ids 3,4,5,6
in itemid 3
I have 2 tag ids 2,3
and so on..
I want that for itemid 1
in similar items 3rd itemid
should be shown first (because it has 2 matching) then itemid 2
and so on..
What i have used is:
SELECT itemid
FROM items
WHERE MATCH (itemtagids ) AGAINST ('2823' IN BOOLEAN MODE)
it does return results only in the case when there is one itemtagid
in itemtags
ids column.
sequence is something lie: 234,546,2823,342,5643
So, here 2823 is not an individual word but a complete string from 234,54...43
what should be done in this case where tags are in the form of ids and in CSV format.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
似乎全文搜索不适合您的案例。尝试改用正则表达式。
编辑:或者也许您可以使用单个正则表达式,例如:
希望它有帮助!
It seems a FULLTEXT isn't the right search for your case. Try using regular expressions instead.
EDIT: or perhaps you might do with a single regular expression, like:
Hope it helps!