sql - 推进 ORM : How to use own brackets in where clause

标签 sql database propel

我使用 propel 进行数据库交互。现在我必须创建一个查询,例如

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

我从表“values”创建一个 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;

我该如何解决这个问题?是否可以说插入它应该放在括号中的内容?

感谢您的所有回答!

最佳答案

正如 @halfer 所说,请阅读以下有关如何组合多个条件的文档:http://www.propelorm.org/reference/model-criteria.html#combining_several_conditions

关于sql - 推进 ORM : How to use own brackets in where clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9457596/

相关文章:

sql - PostgreSQL 多列唯一性不起作用

sql - Postgresql 序列与串行

mysql - 如何在 MySQL 数据库中存储精确的十进制坐标

sql - MySQL 子查询在 MySQL 4.0 上失败并出现无效语法错误

php - 在 XAMPP 上安装 PEAR

sql - 在@@ ROWCOUNT上提交交易

mysql - 制作数据库的本地副本

php - Null 有课吗?

php - 使用 symfony/propel 进行增量更新

sql - 是否可以在 SQL 中将多个常量 SELECT 到多个结果集行中?