簡體   English   中英

MYSQL使用逗號分隔的關鍵字將字段匹配到另一個字段

[英]MYSQL match field to another field with comma separated keywords

因此,我有兩個表,一個是問題,它具有一個我要與主題表search_keyword字段匹配的描述字段。

例如,問題表描述字段具有以下內容:

q.description 
-------------
Have you ever traveled to China?

主題表上的search_keyword字段具有以下內容:

t.search_keywords
-------------
travel, traveled, traveling, traveler, travel agency, jet set

因此,基本上,我正在嘗試根據具有任何關鍵字的描述來縮小問題的結果集。

到目前為止,這是我的查詢,為我提供了主題URL,該字段可以使范圍縮小一些,但隨后必須通過將描述與search_keywords相匹配來進一步縮小范圍。

SELECT * FROM question q 
         LEFT JOIN topic t ON t.category_id = q.category_id 
         WHERE t.url = 'travel' AND 
         FIND_IN_SET(q.description, t.search_keywords)

注意:很遺憾,我無法更改數據庫

任何幫助,將不勝感激!

您應該將關鍵字存儲為單獨的行,而不是用逗號分隔的值:

t.search_keywords
-------------
travel
traveled
traveling
traveler
travel agency
jet set

然后,您只需將%添加到雙方即可找到匹配項:

select *
from question q
left join topic t on t.category_id = q.category_id
where t.url = 'travel'
    and q.description like concat('%', t.search_keywords, '%');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM