【问题标题】:Google Fusion Table SQL query where clause - only AND works, not OR?Google Fusion Table SQL 查询 where 子句 - 只有 AND 有效,而不是 OR?
【发布时间】:2011-10-26 14:23:06
【问题描述】:

我的 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

这会导致“解析错误”。如果我将 OR 替换为 AND,则查询返回成功:

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 文档确实暗示只允许 AND,这让我大吃一惊。 http://code.google.com/apis/fusiontables/docs/developers_guide.html#Querying

【问题讨论】:

    标签: google-fusion-tables


    【解决方案1】:

    不支持 OR - 查看 API ref filter_conditions

    支持 IN - 因此您可以为 SType 输入所有 OR 条件

    【讨论】:

    • 谢谢!后续查询,如果其他人之前不需要使用 IN: SELECT * FROM 1910640 WHERE stype IN ('P', 'ERC', 'PERC' ) ORDER BY ST_DISTANCE(geometry, LATLNG(-0.12623619999999391,51.5001524))限制 6
    【解决方案2】:

    如果我在说傻话,请原谅,因为我从来没有使用过 fusion-tables,但是 OR 查询可以分成 2 个查询,每个条件一个。

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-23
        • 2021-02-02
        • 2016-02-13
        • 2014-07-13
        • 2022-01-07
        相关资源
        最近更新 更多