谷歌Fusion表SQL查询where子句 - 只有AND工作,而不是OR?

时间:2011-10-26 14:23:06

标签: google-fusion-tables

我的SQL查询是:

SELECT * FROM 1910640 WHERE stype='P' OR stype='ERC' OR stype='PERC' ORDER BY ST_DISTANCE(geometry, LATLNG(-0.12623619999999391,51.5001524)) LIMIT 6

这会导致“parseerror”。如果我用AND替换OR,则查询返回成功:

SELECT * FROM 1910640 WHERE stype='P' AND stype='ERC' AND stype='PERC' ORDER BY ST_DISTANCE(geometry, LATLNG(-0.12623619999999391,51.5001524)) LIMIT 6

其他人使用Fusion Tables遇到了这个问题并有解决方案/解决方法吗?

API doc确实意味着只允许使用AND,这对我来说是个大惊喜。 http://code.google.com/apis/fusiontables/docs/developers_guide.html#Querying

3 个答案:

答案 0 :(得分:4)

不支持OR - 请查看API ref filter_conditions

支持IN - 因此您可以在所有OR条件下使用SType

答案 1 :(得分:0)

打扰一下,如果我说的是foolery,因为我从来没有使用过融合表,但是OR个查询可以分成2个查询,每个条件对应一个查询。

此解决方法的主要问题是,在合并两个查询时,必须使用编程语言实现ORDER。

答案 2 :(得分:0)

您可以使用IN而不是OR,因为融合表不支持OR。

http://www.w3schools.com/sql/sql_in.asp