Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 16, 2009 17:03:36

nJLyTo
От:
Зарегистрирован: 2008-11-11
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск по Data Store

В SQL есть оператор LIKE, который проверяет соответствие значений заданной маске. Например:

SELECT CompanyName, ContactName
FROM Customers
WHERE CompanyName LIKE 'M%'
В GQL, как я понял, такое сделать не получится. Как обойти это ограничение?



Офлайн

#2 Ноя. 16, 2009 17:47:09

kmet
От:
Зарегистрирован: 2009-10-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск по Data Store

для выборки по префиксу (prefix%) можно сделать финт ушами:
GqlQuery(“SELECT * FROM Model WHERE prop >= :1 AND prop < :2”, u“prefix”, u“prefix” + u“\ufffd”)



Офлайн

#3 Ноя. 16, 2009 18:30:43

nJLyTo
От:
Зарегистрирован: 2008-11-11
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск по Data Store

Этот запрос выведет строки, которые начинаются на u“prefix”. А как быть, если префикс находится не вначале строки?

И еще, мне не понятно назначение символа u“\ufffd”?



Офлайн

#4 Ноя. 17, 2009 11:50:02

kmet
От:
Зарегистрирован: 2009-10-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск по Data Store

В GQL по объективным причинам нету аналога LIKE. я знаю решение только для частного случая, которое и привел выше

\ufffd это символ на наибольшим кодом в unicode, поэтому строка (“prefix” + u“\ufffd”) “больше” любой другой сторки начинающейся с “prefix”



Офлайн

#5 Ноя. 17, 2009 14:14:06

nJLyTo
От:
Зарегистрирован: 2008-11-11
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск по Data Store

Хм, значит будем что-то менять… Спасибо за помощь.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version