Re: String comparison problem.
От | Scott Marlowe |
---|---|
Тема | Re: String comparison problem. |
Дата | |
Msg-id | dcc563d10805292141iea797a7jb23f9a4e91a1ed1c@mail.gmail.com обсуждение исходный текст |
Ответ на | String comparison problem. (Theerasak Maneeneim <theerasak@thns.co.th>) |
Список | pgsql-sql |
On Thu, May 29, 2008 at 9:45 PM, Theerasak Maneeneim <theerasak@thns.co.th> wrote: > Dear All, > > I have some problem with string comparison. I use postgresql > 8.3.1,UTF8 encoding, on CentOS 5.5. Why dose the result of SQL statement : > "select '1.1' < '101';" is false but "select '1.1'::bytea < '101'::bytea;" > is ture? The UTF encoding isn't what's important here, it's your locale, which is likely something like en_US (but different, whatever you'd have in your country). This locale will be collated (i.e. sorted etc.) by a set of rules for the language where you live. For instance, with a list like: a dcabca bcadc and an order by on it in locale en_US I get this ordering: abca bcadca dc Why? Because according to the rules of english, spaces don't count. If you want byte code ordering, then you need to use Locale=C when you run initdb. Locale can only be changed at initdb time.
В списке pgsql-sql по дате отправления: