2017-10-10 287 views
0

我需要在我的postgresql數據庫的汽車表上搜索某些關鍵字的所有關鍵字,但排除其他一些關鍵工作...例如...我需要找到所有汽車至極含有「C4」和「雪鐵龍」上的金屬塊,但至極不包含單詞「畢加索」或「盛大」Postgresql(9.6)選擇包含ILIKE ALL但不包括某些單詞的記錄

我嘗試下面的代碼,但沒有工作:

SELECT * FROM cars.cars 
WHERE slug ILIKE ALL (array['%citroen%','%c4%']) 
AND slug NOT ILIKE ANY (array['%picasso%','%grand%']) 

它只發現至少包含雪鐵龍和c4,但並不排除包含畢加索或盛大的記錄

謝謝

回答

1

在第二個條件中將ANY更改爲ALL。 像這樣:

SELECT * FROM cars.cars 
WHERE slug ILIKE ALL (array['%citroen%','%c4%']) 
AND slug NOT ILIKE ALL (array['%picasso%','%grand%']) 
+0

好的,謝謝,它工作得很好,但是ANY和ALL之間有什麼區別呢? –

+1

認爲不是所有=任何而不是任何=全部。 – ninjarails

+0

謝謝,這清理了我的想法很多。 –

相關問題