GetRowsWithConditions在条件我可以使用AND而不是OR

时间:2016-05-08 21:43:41

标签: sql google-fusion-tables app-inventor

我正在尝试使用 App Inventor 2 中的GetRowsWithConditions方法从表中获取一些行。我使用了AND并且它正常工作但是当我使用OR时,我得到了400 Bad Request Invalid query: Parse error near 'OR'

条件是

WHERE ROWID=1 OR ROWID=1001 OR ROWID=2001

2 个答案:

答案 0 :(得分:1)

Fusiontable SQL语言中不存在

OR,另请参阅SQL Reference Documentation of the Fusion Tables API

答案 1 :(得分:1)

正如Taifun所说,Fusion Tables不支持“OR”,但另一个suggested by Google是使用“IN”。

<强> Wikipedia Entry:

IN会在一组候选人中找到任何值。

SELECT ename WHERE ename IN ('value1', 'value2', ...)

如果谓词的值是候选值集之一,则所有行都与谓词匹配。这与

的行为相同
SELECT ename WHERE ename='value1' OR ename='value2'

除了后者可以允许比较几个列,每个IN子句都没有。对于更多的候选人,IN不那么冗长。

因此在理论上*,您的查询将重新格式化为:

... WHERE ROWID IN ('1','1001','2001')

希望有所帮助!

*我在理论上说,因为我从未使用过ROWID作为过滤器,因为我总是创建一个自定义ID列。