nJLyTo
Ноя. 16, 2009 17:03:36
В SQL есть оператор LIKE, который проверяет соответствие значений заданной маске. Например:
SELECT CompanyName, ContactName
FROM Customers
WHERE CompanyName LIKE 'M%'
В GQL, как я понял, такое сделать не получится. Как обойти это ограничение?
kmet
Ноя. 16, 2009 17:47:09
для выборки по префиксу (prefix%) можно сделать финт ушами:
GqlQuery(“SELECT * FROM Model WHERE prop >= :1 AND prop < :2”, u“prefix”, u“prefix” + u“\ufffd”)
nJLyTo
Ноя. 16, 2009 18:30:43
Этот запрос выведет строки, которые начинаются на u“prefix”. А как быть, если префикс находится не вначале строки?
И еще, мне не понятно назначение символа u“\ufffd”?
kmet
Ноя. 17, 2009 11:50:02
В GQL по объективным причинам нету аналога LIKE. я знаю решение только для частного случая, которое и привел выше
\ufffd это символ на наибольшим кодом в unicode, поэтому строка (“prefix” + u“\ufffd”) “больше” любой другой сторки начинающейся с “prefix”
nJLyTo
Ноя. 17, 2009 14:14:06
Хм, значит будем что-то менять… Спасибо за помощь.