2013-08-24 53 views
4

我對使用propel ORM和創建查詢有疑問。選擇fieldone不等於null的所有字段+ Propel

我有一個表「位置」與字段:

  • 位置
  • sublocation
  • 郵編
  • 街道

現在我想選擇所有的位置,其中位置字段IS NOT等於「零」。
我該怎麼做?我試過,但我找回所有的結果...

嘗試查詢:$locations = LocationQuery::create()->where('location' != null)->find();

回答

4

不知推進。但對於表達正確的SQL語法是:

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

在SQL任何比較NULL返回NULL,這被視爲假。除了is nullis not null

+0

謝謝!正確的語法是:locations = LocationQuery :: create() - > where('location IS NOT NULL') - > find(); – nielsv

14

您可以使用此:

->filterByColumnName(null, Criteria::NOT_EQUAL) 

有在推進各種「標準」的使用,這裏列出:propel criteria

沒有這個網站上的一個確切的樣品,最接近的是這樣的:

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

您還可以使用

->filterByColumnName(null, CRITERIA::ISNOTNULL) 
+0

這可能工作,但這是寫它的狗屎方式。 – julestruong

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 
相關問題