Postgresql(9.6)选择具有ILIKE ALL的记录但不包括某些单词

时间:2017-10-10 20:00:49

标签: sql postgresql sql-like

我需要在postgresql数据库中的汽车表上搜索所有关键字,但不包括其他一些关键字...例如......我需要找到所有包含'c4'和'citroen'的汽车在它的slu ,,但它不包含'picasso'或'grand'字样。

我尝试过以下代码,但没有用:

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

它只发现含有雪铁龙和c4,但不会删除含有毕加索或者盛大的记录

由于

1 个答案:

答案 0 :(得分:1)

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

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