2015-10-07 125 views
3

文檔告訴我LIKENOT LIKE在SQL中用於搜索單元格是否包含/開始/以某些字符結尾。PostgreSQL查詢,LIKE運算符

我想在PostgreSQL中使用它,告訴我操作符不存在。我查詢:

SELECT * FROM "City"."models" 
WHERE (("City"."models".identifier NOT LIKE'%$%') 
AND 
    (("City"."models".id LIKE '%2%') 
    OR 
    ("City"."models".id LIKE '%1%'))) 

ORDER BY "City"."models".town_id ASC LIMIT 10 

列類型:

identifier->uuid 
id->int 
town_id->int 

哪裏是我的錯?

+0

我們看一些樣本數據,最好是在[** ** SQLFiddle(http://sqlfiddle.com/),並發表您的查詢有 –

+0

你真的應該交完整的錯誤信息。 –

+0

我的猜測是「標識符」和「ID」不是字符串。 LIKE不能使用數字值。 – CFreitas

回答

2

試試這個:

SELECT * FROM "City"."models" 
WHERE (("City"."models".identifier::varchar NOT LIKE'%$%') 
AND 
    (("City"."models".id::varchar LIKE '%2%') 
    OR 
    ("City"."models".id::varchar LIKE '%1%'))) 

ORDER BY "City"."models".town_id ASC LIMIT 10