2017-07-10 36 views
0

如何寫下面的查詢在GQL替代方式來寫IN子句中GQL

SELECT * FROM測試WHERE蓋= 1234和狀態(1,7,8)爲了通過sent_datetime DESC

執行以上查詢時出現異常:GQL query error: Encountered "IN" at line 1, column 46. Was expecting one of: "contains", "has", "is", "=", "<", "<=", ">", ">=", ".", "("

並且所有列都被編入索引。

感謝

回答

2

IN是一些客戶端庫的功能,並沒有嚴格的服務器的GQL語言的一部分。您可以執行與客戶端庫通過針對IN子句中的每個值和重複數據刪除結果發出查詢來模擬此功能所做的相同的事情。

所以這個:

select * from test WHERE lid=1234 AND status IN (1,7,8) order by sent_datetime DESC 

將成爲這些:

select * from test WHERE lid=1234 AND status = 1 order by sent_datetime DESC 
select * from test WHERE lid=1234 AND status = 7 order by sent_datetime DESC 
select * from test WHERE lid=1234 AND status = 8 order by sent_datetime DESC