Re: [GENERAL] LIKE problem

2009-07-06 Thread Pavel Stehule
2009/7/6 Juan Pablo Cook juamp...@gmail.com:
 Hi Everybody!
 I'm asking you, because recently I have some problems with the LIKE so I
 test with an easy and simple query but doesn't work:
 SELECT *
 FROM employee
 WHERE id like 'h%';
 The error says:
 ERROR:  operator does not exist: integer ~~ unknown

SELECT *
 FROM employee
 WHERE name like 'h%'; --

there are not LIKE operator for integer values. you cannot use LIKE on
integer columns

regards
Pavel



 LINE 5: WHERE id like 'h%';

                   ^

 HINT:  No operator matches the given name and argument type(s). You might
 need to add explicit type casts.

 ** Error **

 ERROR: operator does not exist: integer ~~ unknown

 SQL state: 42883

 Hint: No operator matches the given name and argument type(s). You might
 need to add explicit type casts.

 Character: 34

 I don't know why because I did before more difficult querys and works well.
 What is the problem?

 Thanks a lot

 JP Cook

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] LIKE problem

2009-07-06 Thread A. Kretschmer
In response to Juan Pablo Cook :
 Hi Everybody! 
 I'm asking you, because recently I have some problems with the LIKE so I test
 with an easy and simple query but doesn't work:
 
 SELECT *
 FROM employee
 WHERE id like 'h%';
 
 The error says:
 ERROR:  operator does not exist: integer ~~ unknown
 
 LINE 5: WHERE id like 'h%';
 
                   ^
 
 HINT:  No operator matches the given name and argument type(s). You might need
 to add explicit type casts.

You can't compare a INT with a TEXT:

test=*# select '1'::int4 like '1'::text;
ERROR:  operator does not exist: integer ~~ text
LINE 1: select '1'::int4 like '1'::text;
 ^
HINT:  No operator matches the given name and argument type(s). You
might need to add explicit type casts.


But you can CAST the INT into a TEXT:

test=# select '1'::int4::text like '1%'::text;
 ?column?
--
 t
(1 row)


Okay?

But in your case,you have an INT-column (id) and you compare that with
'h%'. You can CAST the id-column, but all INT::TEXT don't match 'h%'.


-- 
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: - Header)
GnuPG-ID:   0x3FFF606C, privat 0x7F4584DA   http://wwwkeys.de.pgp.net

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[GENERAL] LIKE problem

2009-07-05 Thread Juan Pablo Cook
Hi Everybody! I'm asking you, because recently I have some problems with the
LIKE so I test with an easy and simple query but doesn't work:

SELECT *
FROM employee
WHERE id like 'h%';

The error says:
ERROR:  operator does not exist: integer ~~ unknown

LINE 5: WHERE id like 'h%';

  ^

HINT:  No operator matches the given name and argument type(s). You might
need to add explicit type casts.


** Error **


ERROR: operator does not exist: integer ~~ unknown

SQL state: 42883

Hint: No operator matches the given name and argument type(s). You might
need to add explicit type casts.

Character: 34


I don't know why because I did before more difficult querys and works well.
What is the problem?


Thanks a lot


JP Cook