我想使用标签显示类似的项目。
我有项目表,itemid
、itemname
和itemtagids
作为列。 itemtagids
具有 CSV 标记 ID。
比如说在itemid 1
,我有 3 个标签 ID 1,2,3
,itemid 2
年我有 4 个标签 ID,3,4,5,6
itemid 3
我有 2 个标签 ID 2,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 的完整字符串
在这种情况下,如果标签采用 ID 和 CSV 格式,应该怎么做。
不是适合您的案例的搜索。请尝试改用正则表达式。
SELECT `itemid`
FROM `items`
WHERE `itemtagids` REGEXP '^2823$'
OE `itemtagids` REGEXP '^2823,'
OR `itemtagids` REGEXP ',2823$'
OR `itemtagids` REGEXP ',2823,';
编辑:或者你可以使用单个正则表达式,例如:
SELECT `itemid`
FROM `items`
WHERE `itemtagids` REGEXP '[[:<:]]2823[[:>:]]';
希望对您有所帮助!