簡體   English   中英

多列sql上的多關鍵字搜索

[英]Multi Keyword search on multi-column sql

我嘗試在我的網站上進行多關鍵字搜索。

我想找到每個包含 A 和 B 的帖子。

例如,如果我搜索“ A B

我應該找到這些帖子:

標題: A cd B afd
內容:zzzzzz

還有這個

標題:dddd

內容: A ttt B cccd

但不是這個

標題:TTTTT

內容: B wwwww

因為標題或內容沒有我要找的所有關鍵字。

現在我已經提出了這個有效的請求

keys = params[:search].split(' ')
Article.where((["title LIKE ? OR content LIKE ?"] * keys.size).join(' AND '), *(keys.map { |key| ["%#{key}%", "%#{key}%"] }.flatten)).where(activate: true).order(created_at: :desc)

但是 AND 與 OR 的作用相同。 它向我展示了我給出的 3 個例子。

你認為我應該把它分成兩個請求嗎?

導軌 5.2

正如你解釋的那樣,標題應該包含AB ,或者內容應該包含AB

您可以嘗試:

Article
  .where("title LIKE '%A%' AND title LIKE '%B%'")
  .or(Article.where("content LIKE '%A%' AND content LIKE '%B%'"))

我在這里對 LIKE 的值進行了硬編碼,也許您可​​以添加一個示例來說明您用來更新它的內容。

暫無
暫無

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

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