我有一个关于使用推进ORM和创建查询的问题。
我有一个表“locations”,其中包含字段:
- 位置
- sublocation
- 邮编
- 街道
- 数
现在我想选择位置字段不等于'null'的所有位置。
我怎样才能做到这一点?我试过这个,但我收回了所有的结果......
尝试查询:$locations = LocationQuery::create()->where('location' != null)->find();
答案 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 null
和is 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