我正在使用 Postgresql 数据库。在我的数据库中,有一个表 mumbaipropertydetails
,其中一个列区域有 unicode 数据。
当我执行查询时:
select mumbaipropertydetails."zone"
from mumbaipropertydetails;
它给出这样的输出:
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947"
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947"
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947"
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947"
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947"
"\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947"
当我尝试执行另一个查询时:
select mumbaipropertydetails.taxno
from mumbaipropertydetails
where mumbaipropertydetails."zone"= "\u092A\u093F\u0902\u092A\u0930\u0940
\u0935\u093E\u0918\u0947\u0930\u0947";
它给出了这样的错误
NOTICE: identifier
"\u092A\u093F\u0902\u092A\u0930\u0940\u0935\u093E\u0918\u0947\u0930\u0947"
will be truncated to
"\u092A\u093F\u0902\u092A\u0930\u0940\u0935\u093E\u0918\u0947\u"
ERROR: column "\u092A\u093F\u0902\u092A\u0930\u0940
\u0935\u093E\u0918\u0947\u" does not exist
LINE 1: ...opertydetails where mumbaipropertydetails."zone"= "\u092A\u0...
^
********** Error **********
ERROR: column "\u092A\u093F\u0902\u092A\u0930\u0940
\u0935\u093E\u0918\u0947\u" does not exist
SQL state: 42703
Character: 99
最佳答案
我认为您在查询中混淆了单引号和双引号。
你应该这样查询:
select mumbaipropertydetails.taxno
from mumbaipropertydetails
where
mumbaipropertydetails.zone
=
E'\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947';
- 如果列名是小写的,则无需引用它们。如果它们是混合的或大写的,你必须用双引号将它们引用 -
"
- 字符串必须用单引号引起来 -
'
- 使用反斜杠 (
\
) 进行转义的字符串,必须在打开单引号之前使用字母E
,如上例所示。
关于postgresql - unicode字符串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2361769/