Для чего нужен псевдоним типа «moreq»? - PullRequest
1 голос
/ 22 мая 2010

Я смотрю на опции фильтрации Magento (Ecommerce System и PHP Framekwork с обширной системой ORM). В частности, метод addFieldToFilter. В этом методе вы указываете SQLish-фильтр, передавая массив из одного элемента, причем ключ указывает тип фильтра. Например,

array('eq'=>'bar') //eq means equal
array('neq'=>'bar') //neq means not equal

даст вам предложение where, которое выглядит как

where field = 'bar'; 
where field != 'bar'; 

Итак, глубоко в недрах источника я нашел тип сравнения с именем

'moreq'

, который сопоставляется с оператором сравнения> =

array('moreq'=>'27')
where field >= 27

Странно то, что тип сравнения gteq уже существует

array('gteq'=>'27')
where field >= 27

Итак, мой вопрос: что означает moreq? Это какая-то особая концепция SQL, которая поддерживается в других базах данных, которую ребята из Magento хотят отобразить на MySQL, или это просто «больше требуется», и пример того, что происходит, когда вы выполняете быструю гибкую и пытаетесь поддерживать обратную совместимость.

1 Ответ

1 голос
/ 22 мая 2010

Я сделал несколько заметок для операторов сравнения, взятых прямо из абстракции db collection.Как видите, moreq для "больше или равно".Вы правы, что это дубликат для gteq, но я не видел ничего в коде, который предлагает предыдущее использование:

from            from
to              to
=               eq
!=              neq
like            like
not like        nlike
in              in
not in          nin
is              is
is not null     notnull
is null         null
>=              moreq
>               gt
<               lt
>=              gteq
<=              lteq
find_in_set()   finset

Надеюсь, это поможет!

Спасибо, Джо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...