unicode字符串搜索

问题描述 投票:1回答:1

我正在使用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
postgresql search unicode
1个回答
3
投票

我认为您在查询中混淆了单引号和双引号。

你应该像这样查询:

select mumbaipropertydetails.taxno
  from mumbaipropertydetails
  where
    mumbaipropertydetails.zone
    =
    E'\u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947';
  1. 如果列名是小写的,则无需引用列名。如果它们是混合的或大写的,你必须用双引号引用它们 - "
  2. 字符串必须用单引号引用 - '
  3. 使用反斜杠(\)进行转义的字符串,在打开单引号之前必须使用字母E,如上例所示。
© www.soinside.com 2019 - 2024. All rights reserved.