我有这种情况:
我想检查特定的单词,如果它们匹配一个术语,我将不得不更新该页面的内容并将其链接到该术语.但是现在我专注于获取内容页面,其中部分内容与特定术语相同.
这是我需要做的事情的想法,但它不起作用,因为子查询返回多个字段.
我想找到WHERE m.module_content类似于我所拥有的任何术语,但它应该检查所有.
SELECT m.module_termid, t.term_name, m.module_name, m.module_content
FROM modules m
JOIN terms t ON m.module_termid = t.term_id
WHERE m.module_content LIKE '%' || (SELECT term_name FROM terms) || '%'
Run Code Online (Sandbox Code Playgroud)
module_content有html格式的文本,所以最后我需要做的是,如果它匹配一个术语而且它还不是链接,我将添加一个指向该特定术语的链接.
这里最好的选择是什么?(我使用的是mysql btw)
为您举例说明预期结果:
术语:id:1,name:hello Modules:id:1,content:<p> Hello World </ p>
我想提出id为1的模块,因为它包含的内容在某处有一个名为"hello"的术语
更新:
试过Pablo的解决方案,但这是发生的事情:

例如,"雷戴维斯"与术语"浮动"无关,所以不应该出现.
我认为你只需要将你的JOIN状况改为:
SELECT m.module_termid, t.term_name, m.module_name, m.module_content
FROM modules m
JOIN terms t ON (m.module_content LIKE '%' || t.term_name || '%')
Run Code Online (Sandbox Code Playgroud)
话虽如此,这可能是非常低效的.考虑使用FULL TEXT INDEX INSTEAD进行此操作.