9

我有一个关于使用推进 ORM 和创建查询的问题。

我有一个包含字段的表“位置”

  • 地点
  • 子定位
  • 邮政编码
  • 街道
  • 数字

现在我想选择位置字段等于“空”的所有位置。
我怎样才能做到这一点?我试过这个,但我得到了所有的结果......

尝试查询:$locations = LocationQuery::create()->where('location' != null)->find();

4

4 回答 4

21

你可以使用这个:

->filterByColumnName(null, Criteria::NOT_EQUAL) 

推进中有各种“标准”用途,此处列出:推进标准

网站上没有确切的示例,最接近的是:

->filterByTags(array('novel', 'russian'), Criteria::CONTAINS_NONE)
于 2014-01-17T13:11:04.317 回答
6

你也可以使用

->filterByColumnName(null, CRITERIA::ISNOTNULL)
于 2015-06-24T10:57:21.030 回答
5

我不知道动力。但是表达式的正确 SQL 语法是:

$locations = LocationQuery::create()->where('location is not null')->find();

任何与NULLin SQL 的比较都会返回NULL,这被视为 false。除了is nullis not null

于 2013-08-24T11:54:25.940 回答
0

CRITERIA::_needed_type_ 您可以在此处引用所有 Propel 2 比较类型。

EQUAL
NOT_EQUAL
ALT_NOT_EQUAL
GREATER_THAN
LESS_THAN
GREATER_EQUAL
LESS_EQUAL
LIKE
NOT_LIKE
CONTAINS_ALL
CONTAINS_SOME
CONTAINS_NONE
ILIKE
NOT_ILIKE
CUSTOM
RAW
CUSTOM_EQUAL
DISTINCT
IN
NOT_IN
ALL
JOIN
BINARY_AND
BINARY_OR
ASC
DESC
ISNULL
ISNOTNULL
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
LEFT_JOIN
RIGHT_JOIN
INNER_JOIN
LOGICAL_OR
LOGICAL_AND
于 2015-07-16T14:19:39.757 回答