поиск строки в юникоде - PullRequest
1 голос
/ 02 марта 2010

Я использую базу данных 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

1 Ответ

3 голосов
/ 02 марта 2010

Я думаю, что вы запутали одинарные и двойные кавычки в вашем запросе.

Вы должны запросить вот так:

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 перед открытием одинарных кавычек, как в примере выше.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...