UTF-8 and LIKE vs =

From: David Wheeler <david(at)kineticode(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: UTF-8 and LIKE vs =
Date: 2004-08-23 19:41:30
Message-ID: 6E8A7CEA-F53C-11D8-990D-000A95972D84@kineticode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi All,

I'm having some trouble with multibyte characters and LIKE. We've been
using LIKE instead of = for string queries for a long time, as it gives
us flexibility to use wildcards such as "%" when we need to and get the
same results as with = by not using them. But I've just found that it
sometimes doesn't work properly:

bric=# select version();
version
------------------------------------------------------------------------
---------------------------------
PostgreSQL 7.4.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2.2
20030222 (Red Hat Linux 3.2.2-5)
(1 row)

bric=# select * from keyword where name = '북한의';
id | name | screen_name | sort_name | active
------+--------+-------------+-----------+--------
1218 | 국방비 | 국방비 | 국방비 | 1
(1 row)

bric=# select * from keyword where name LIKE '북한의';
id | name | screen_name | sort_name | active
----+------+-------------+-----------+--------
(0 rows)

bric=# select * from keyword where name ~ '^북한의';
id | name | screen_name | sort_name | active
----+------+-------------+-----------+--------
(0 rows)

Any idea why = works here and LIKE and ~ wouldn't?

TIA,

David

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2004-08-23 19:41:55 Re: Unsupported 3rd-party solutions (Was: Few questions
Previous Message Tom Lane 2004-08-23 19:35:32 Re: libpq on the server