2015-10-07 96 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