[英]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.