- 论坛徽章:
- 0
|
5555,我该用什么字符集??
我试了一下
hd201=>; \l
List of databases
Name | Owner | Encoding
-----------+----------+-----------
hd201 | hd201 | UNICODE
jerryld | jerryld | UNICODE
postgres | postgres | UNICODE
template0 | postgres | SQL_ASCII
template1 | postgres | SQL_ASCII
hd201=>; \encoding
UNICODE
hd201=>; select * from test;
id | name
----+----------
1 | 鍗庝腑鍖哄煙
2 | 鍗庡寳鍖哄煙
3 | 鍗庡崡鍖哄煙
4 | 瑗垮寳鍖哄煙
5 | 鍗庝笢鍖哄煙
6 | 鍗庝腑鍦板尯
7 | 鍗庡寳鍦板尯
8 | 鍗庡崡鍦板尯
9 | 瑗垮寳鍦板尯
10 | 鍗庝笢鍦板尯
(10 rows)
hd201=>; \encoding GBK
hd201=>; select * from test;
id | name
----+----------
1 | 华中区域
2 | 华北区域
3 | 华南区域
4 | 西北区域
5 | 华东区域
6 | 华中地区
7 | 华北地区
8 | 华南地区
9 | 西北地区
10 | 华东地区
(10 rows)
hd201=>; select * from test where name='华中区域';
id | name
----+----------
1 | 华中区域
(1 row)
hd201=>; select * from test where name='华中地区';
id | name
----+----------
6 | 华中地区
(1 row)
hd201=>; select * from test where name like '华中__';
id | name
----+----------
1 | 华中区域
6 | 华中地区
(2 rows)
hd201=>; select * from test where name like '华';
id | name
----+------
(0 rows)
hd201=>; select * from test where name like '华%';
id | name
----+----------
1 | 华中区域
2 | 华北区域
3 | 华南区域
5 | 华东区域
6 | 华中地区
7 | 华北地区
8 | 华南地区
10 | 华东地区
(8 rows)
hd201=>; select * from test order by name;
id | name
----+----------
5 | 华东区域
10 | 华东地区
1 | 华中区域
6 | 华中地区
2 | 华北区域
7 | 华北地区
3 | 华南区域
8 | 华南地区
4 | 西北区域
9 | 西北地区
(10 rows)
排序好像有点问题,第二个字的顺序有点不对
hd201=>; select substr(name,0) as p0,substr(name,1) as p1,substr(name,2) as p2, substr(name,3) as p3 , substr(name,4) as p4 from test;
p0 | p1 | p2 | p3 | p4
----------+----------+--------+------+----
华中区域 | 华中区域 | 中区域 | 区域 | 域
华北区域 | 华北区域 | 北区域 | 区域 | 域
华南区域 | 华南区域 | 南区域 | 区域 | 域
西北区域 | 西北区域 | 北区域 | 区域 | 域
华东区域 | 华东区域 | 东区域 | 区域 | 域
华中地区 | 华中地区 | 中地区 | 地区 | 区
华北地区 | 华北地区 | 北地区 | 地区 | 区
华南地区 | 华南地区 | 南地区 | 地区 | 区
西北地区 | 西北地区 | 北地区 | 地区 | 区
华东地区 | 华东地区 | 东地区 | 地区 | 区
(10 rows)
substr函数的起始位置参数中0和1是一样的让我迷惑了一会儿
暂时没有看出什么其他不对的地方,
偶用的是PostgreSQL 8.0
系统RedHat EL AS 3u3
客户端用的是psql for win
Linux下psql没有试验,因为偶用putty远程登陆,无法输入中文 |
|