选择fieldone不等于null + Propel的所有字段

时间:2013-08-24 10:13:48

标签: php mysql pear propel phing

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

我有一个表“locations”,其中包含字段:

  
      
  • 位置
  •   
  • sublocation
  •   
  • 邮编
  •   
  • 街道
  •   

  •   

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

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

4 个答案:

答案 0 :(得分:16)

您可以使用:

->filterByColumnName(null, Criteria::NOT_EQUAL) 

推进中有各种“标准”用法,列于此处:propel criteria

网站上没有确切的样本,最接近的是:

->filterByTags(array('novel', 'russian'), Criteria::CONTAINS_NONE)

答案 1 :(得分:6)

您也可以使用

->filterByColumnName(null, CRITERIA::ISNOTNULL)

答案 2 :(得分:4)

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

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

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

答案 3 :(得分:0)

您可以参考CRITERIA::_needed_type_ here的所有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