2017-01-28 16 views
0

假設我有一個SQL查詢:使用是真實的SQL語句主義

SELECT phone_id, name 
FROM calls c WHERE (c.user_id = 2241 
AND c.phone_id IN ("Google Pixel","Samsung") 

AND (c.name IN ("Alex","John")) OR c.name IS NULL) IS TRUE) 

的正常工作:IS TRUE語句計算(c.name IN ("Alex","John")) OR c.name IS NULL)表達成一個。

但問題是學說不支持IS TRUE聲明和此類查詢導致錯誤。

我如何能實現使用Doctrine相同的功能,但顯然 避免IS TRUE聲明?

回答

1

這是太長的評論。

is true的目的是什麼?

爲什麼不直接寫這個查詢?

SELECT phone_id, name 
FROM calls c 
WHERE c.user_id = 2241 AND 
     c.phone_id IN ('Google Pixel', 'Samsung') AND 
     (c.name IN ('Alex', 'John') OR c.name IS NULL) 
+1

我同意,真理是任何在where子句的最終測試。 –