2017-03-06 35 views
2

我試圖跨多列查詢類似語句。我有以下的搜索條件: 「狗」 「貓」 「兔子」 「鼠」 「豚鼠」 「倉鼠」在SQL中的多個列中使用類似語句

,我需要在搜索這些詞或術語像這樣的「動物的桌子有大約40個不同的列。我知道我可以做類似的語句做

Select * from animals where [animalscolumn] like ('%dog%') or like ('%cat%') or like ('%gerbil%') or like ('%hamster%') or like ('%guinea pig%') 

然而,「animalscolumn」是不是我需要運行整個「喜歡」聲明的唯一列。我必須在大約40欄中搜索這些條款。會有人碰巧知道如何?謝謝!

+2

您正在使用什麼數據庫管理系統? – Pablo

+0

你可以使用像這樣的臨時表:http://stackoverflow.com/a/1387797/7667467 – Lightningbear

+0

這是一個一次性的任務或功能的一部分嗎?對於一次性任務,我會在我的文本編輯器中使用複製粘貼/上下文替換,用240個子句編寫查詢,並在完成一次性任務後將其刪除。對於一項功能,我會研究數據庫的全文搜索功能,或者將ElasticSearch之類的東西插入到您的應用中。 – 9000

回答

1

多個like語句不能與or直接使用。每個like語句必須使用column name

使用多個如下所述一樣。

Select * 
from animals 
where 
(
[animalscolumn] like ('%dog%') or 
[animalscolumn] like ('%cat%') or 
[animalscolumn] like ('%gerbil%') or 
[animalscolumn] like ('%hamster%') or 
[animalscolumn] like ('%guinea pig%') 
)