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"。
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 列。
我正在尝试使用 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"。
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 列。