是否可以使用更新/插入触发器来获取MySQL中的主题标签?

时间:2012-11-12 23:12:21

标签: mysql triggers hashtag

我不确定在文本字段中构建利用主题标签的MySQL数据库的最佳方法是什么,但我想象它会像在表上插入/更新触发器一样,文本字段会解析out并将任何散列的单词添加到另一个表中,只有当它不在其中时才将其添加到散列表中。这是一个很好的方法吗?如果是这样,这样的触发器会是什么样的?

如果有另一种方法来构建MySQL数据库以利用主题标签,我愿意接受建议。

1 个答案:

答案 0 :(得分:1)

您可以在INSERTUPDATE上运行触发器。

您可以将字符串拆分为单词。

您可以自动INSERT个新标签(假设name上的唯一键):

INSERT IGNORE
INTO hashtags(name)
VALUES ('word1'), ('word2'), ('word3'), ('word4');

您可以获取该单词列表并查找所有(旧的和新的)主题标签:

SELECT ht.id
FROM hashtags ht
WHERE ht.name in ('word1', 'word2', 'word3', 'word4')

然后您可以在行和标签之间插入映射:

INSERT
INTO hashtag_map (document_id, hashtag_id)
SELECT NEW.document_id, ht.hashtag_id
FROM hashtag ht
WHERE ht.name in ('word1', 'word2', 'word3', 'word4')