Propel ORM: как использовать собственные скобки в предложении where - PullRequest
2 голосов
/ 27 февраля 2012

Я использую Propel для взаимодействия с базой данных. Теперь мне нужно создать запрос типа

SELECT data FROM values WHERE a=1 AND (vis=1 or (vis=0 AND userID=5));

Я создаю объект propel из таблицы «Значения».

$p = new ValuesQuery()::create
   ->filterByA(1)
   ->filterByVis(1)
   ->_or()
   ->filterByVis(0)
   ->filterByUserId(5)
   ->findOne();

Propel генерирует следующий SQL-запрос, который в основном имеет смысл:

SELECT data FROM values WHERE a=1 AND (vis=1 or vis=0) AND userID=5;

Как я могу это исправить? Можно ли сказать propel, что должно быть в скобках?

Спасибо за все ответы!

Ответы [ 2 ]

1 голос
/ 10 марта 2012

Как сказал @halfer, прочитайте следующую документацию о том, как объединить несколько условий: http://www.propelorm.org/reference/model-criteria.html#combining_several_conditions

1 голос
/ 06 марта 2012

Игра со следующим инструментом может не только ответить на ваш конкретный вопрос, но и помочь вам понять, как создаются сложные условия.

http://propel.jondh.me.uk/criteria/analyse

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