我有存储在 MySQL 表中的文章。现在我想展示相关文章。所以我集成了一个名为“tags”的字段,它存储了所有用逗号分隔的标签。到目前为止,我搜索的是这样的常见标签:
foreach (explode(',', $article['tags']) as $key => $value) {
if ($key != 0)
$search.= ' OR';
$search .= " `tags` LIKE '%" . mysql_real_escape_string($value) . "%'";
}
$query = "SELECT title, id FROM `article` WHERE $search";
这创建了一个这样的查询:
SELECT title, id FROM `article` WHERE `tags` LIKE '%tag1%' OR `tags` LIKE '%tag2%'
我想知道是否有更有效的方法来解决这个问题。我当前解决方案的不利方面是 "%" ,它会导致像 "green" 这样的极短标签与 "greenteam" 发生冲突。