2015-10-07 3 views
3

Документация сообщает мне, что LIKE и NOT 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 
Смежные вопросы