GetRowsWithConditions 在我可以使用 AND 但不能使用 OR 的情况下

GetRowsWithConditions in the condition I can use AND but not OR

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

条件是

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

OR 在 Fusiontable SQL 语言中不存在,
另见 SQL Reference Documentation of the Fusion Tables API

正如 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 列。