1

我想使用标签显示类似的项目。

我有带有itemid和列itemname的项目表。具有 CSV 标记 ID。itemtagidsitemtagids

比如说itemid 1,我有 3 个标签 ID 1,2,3itemid 2我有 4 个标签 ID 3,4,5,6itemid 3我有 2 个标签 ID 2,3,依此类推..

我希望itemid 1在类似项目itemid中首先显示第 3 个(因为它有 2 个匹配项),然后itemid 2依此类推..

我使用的是:

SELECT itemid 
FROM items 
WHERE MATCH (itemtagids ) AGAINST ('2823' IN BOOLEAN MODE)

itemtagid只有在itemtagsids 列中有一个时,它才会返回结果。

序列是谎言:234,546,2823,342,5643所以,这里的 2823 不是一个单独的词,而是来自 234,54...43 的完整字符串

在这种情况下,如果标签采用 id 形式和 CSV 格式,应该怎么做。

4

1 回答 1

1

FULLTEXT 似乎不适合您的案例。尝试改用正则表达式。

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[[:>:]]';

希望能帮助到你!

于 2011-06-26T15:27:13.283 回答