[英]PHP MySQL show related items using tags
我想使用標簽顯示類似的物品。
我有項目表,其中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
id列中有一個itemtagid
的情況下,它才返回結果。
順序是謊言: 234,546,2823,342,5643
因此,這里2823不是單個單詞,而是234,54 ... 43中的完整字符串
在這種情況下,如果標簽采用ID形式和CSV格式,應該怎么做?
似乎“ 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[[:>:]]';
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.