我想使用标签显示类似的项目。
我的项目表包含itemid
,itemname
和itemtagids
作为列。 itemtagids
有CSV标记ID。
在itemid 1
中说,我有3个标记ID 1,2,3
,而在itemid 2
我3,4,5,6
中有4个标记ID itemid 3
我有2个标记ID { {1}}等等..
我希望2,3
在类似的项目中首先显示第3个itemid 1
(因为它有2个匹配),然后itemid
等等。
我使用的是:
itemid 2
只有在SELECT itemid
FROM items
WHERE MATCH (itemtagids ) AGAINST ('2823' IN BOOLEAN MODE)
ID列中有一个itemtagid
的情况下才会返回结果。
序列是谎言:itemtags
所以,这里2823不是一个单独的词,而是一个完整的字符串,来自234,54 ... 43
在这种情况下应该做什么,其中标签采用ids和CSV格式。
答案 0 :(得分: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[[:>:]]';
希望它有所帮助!