我需要在 mysql 中进行一个查询,该查询可以列出一个表中匹配的 tag_names 以及另一个表中的article_title 列
tags table ------------ tag_id tag_name -------------- 1 travel 2 tickets 3 business 4 america
article table ------------- article_id article_title --------- -------------- 1 travel tips to america 2 cheap tickets for favorite destinations 3 prices for business class tickets to america
expected output -------------- article_id tag_id tag_name ---------- ------- ---------- 1 1 travel 1 4 america 2 2 tickets 3 3 business 3 2 tickets 3 4 america
最佳答案
查询应如下所示:
SELECT a.article_id, t.tag_id, t.tag_name
FROM article a
JOIN tags t
ON a.article_title LIKE CONCAT('%', t.tag_name, '%')
ORDER BY a.article_id;
但是,如果您想使用空格标记标签,则应将查询的第 4 行替换为
ON a.article_title LIKE CONCAT('% ', t.tag_name, ' %')
这不会考虑标题中的标签america,例如
美国梦是美国的民族精神
关于mysql - 将文章标题与另一个表中列出的标签相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47497088/