Postgresql(9.6)使用ILIKE ALL选择记录,但不包括某些单词

Postgresql(9.6)使用ILIKE ALL选择记录,但不包括某些单词,sql,postgresql,sql-like,Sql,Postgresql,Sql Like,我需要在我的postgresql数据库中搜索一个cars表,该表匹配所有一些关键字,但不包括一些其他关键字。。。例如。。。我需要找到所有车的鼻涕虫上都有“c4”和“雪铁龙”,但没有“毕加索”或“格兰德”字样 我尝试了以下代码,但无效: SELECT * FROM cars.cars WHERE slug ILIKE ALL (array['%citroen%','%c4%']) AND slug NOT ILIKE ANY (array['%picasso%','%grand%']) 它只

我需要在我的postgresql数据库中搜索一个cars表,该表匹配所有一些关键字,但不包括一些其他关键字。。。例如。。。我需要找到所有车的鼻涕虫上都有“c4”和“雪铁龙”,但没有“毕加索”或“格兰德”字样

我尝试了以下代码,但无效:

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

它只查找包含雪铁龙和c4的记录,但不排除包含毕加索或格兰德的记录。

在第二个where条件中将ANY更改为ALL。 像这样:

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

好的,谢谢,它工作得很好,但是任何和所有之间有什么区别呢?想想不是所有=任何和不是任何=所有。