当字符串是使用MySQL的表中另一列中的数据时,如何在表的一列中搜索字符串

  • 本文关键字:一列 字符串 搜索 数据 MySQL mysql sql-like
  • 更新时间 :
  • 英文 :


我有一个表,其中包含我们知识库中的知识文章信息。

为了简单起见,它包含以下列:

articleID, title, knowledge_base, state, article_content

状态是文章的工作流状态,我只关心发布的版本,文章内容是文章的html。

我们正在删除knowledge_base2,但knowledge_base1中有一些文章链接到这些文章,我需要找到并删除这些链接。

链接包含文章的articleID,所以我认为这会很容易。

我想在article_content列中搜索对knowledge_base2的articleID的任何引用。我用了这个代码:

/* Any knowledge_base1 articles that link to an article in knowledge_base2. */
Select a.articleID, a.title
FROM table1 a
Join (SELECT articleID 
From table1 b
Where state = 'Published' 
AND knowledge_base LIKE 'Knowledge_base2') b
ON a.articleID = b.articleID
WHERE a.knowledge_base = 'Knowledge_base1'
AND a.state = 'Published'
AND a.`article_content` LIKE concat('%',b.articleID,'%')
ORDER BY a.articleID

当我运行这个时,我没有得到任何结果,但没有错误。我知道Knowledge_base1中有一些链接引用了Knowledge_base 2中的文章ID,所以应该会有很多结果。我想这句话就是我错的地方:;与a.article_contentLIKE concat('%',b.number,'%'("有更好的写法吗?注意,我对此数据库具有只读权限,不能使用本地临时表。

表中的数据示例如下:

| articleID |         title          | knowledge_base  |   state   |       article_content                   |
+-----------+------------------------+-----------------+-----------+-------------
| KB0001    | How to fix a widget    | knowledge_base1 | Published | http://sp?id=kb_article_view&sysparm_article=KB0002 |
| KB0002    | How to make a sandwich | knowledge_base2 | Published | Random HTML content                                 |
| KB0003    | How to buy a car       | knowledge_base1 | outdated  | http://sp?id=kb_article_view&sysparm_article=KB0004 |
| KB0004    | House FAQs             | knowledge_base2 | Published | Random HTML content                                 |
+-----------+------------------------+-----------------+-----------+-------------

最后评论:经过更多的研究和测试,我发现这似乎给了我所需要的答案:

Select a.articleID, a.title
FROM table1 a
Join (SELECT articleID 
From table1 b
WHERE knowledge_base LIKE 'Knowledge_base2') b
ON a.article_content LIKE concat('%',b.articleID,'%')
WHERE a.knowledge_base = 'Knowledge_base1'
AND a.state = 'Published' 
ORDER BY a.articleID

最新更新