【问题标题】:Fusion table SQL query fails with numbers融合表 SQL 查询因数字而失败
【发布时间】:2015-07-25 06:25:20
【问题描述】:

我正在制作一个小型 Web 应用程序,以查看您周围的酒吧特色菜是什么,但我的 SQL 查询融合表时遇到了一个非常愚蠢的问题。

这里是my table,她是我的查询:

ST_INTERSECTS(address, CIRCLE(LATLNG(-33.898672999999995, 151.2063809), 300))
AND type IN ('food','drinks')
AND days CONTAINS 'tuesday'
AND from <= 2000
AND to >= 2000

我的问题是from 和to,如果我删除它们,我的查询很好,如果我简化它们(删除from 并只输入to &gt; 0)我的查询仍然是错误的。 正如您在我的融合表中看到的那样,from 和 to 都是数字,所以我真的不明白哪里出了问题。

编辑:

所以我使用https://developers.google.com/apis-explorer/#p/fusiontables/v2/fusiontables.query.sql 来测试我的查询:

Good query(200 OK):

SELECT *
FROM 1BHnaan3YfSDq9_LzjthDXjj5dzJZANjLSb8JHPl5
WHERE
    ST_INTERSECTS(address, CIRCLE(LATLNG(-33.898672999999995, 151.2063809), 300))
    AND type IN ('food','drinks')
    AND days CONTAINS 'tuesday'

Bad query:

SELECT *
FROM 1BHnaan3YfSDq9_LzjthDXjj5dzJZANjLSb8JHPl5
WHERE
    ST_INTERSECTS(address, CIRCLE(LATLNG(-33.898672999999995, 151.2063809), 300))
    AND type IN ('food','drinks')
    AND days CONTAINS 'tuesday'
    AND from <= 1619
    AND to >= 1619

我收到此错误,但我看不出有什么问题,因为&lt;= 在文档中:

{
 "error": {
  "errors": [
   {
    "domain": "fusiontables",
    "reason": "badQueryCouldNotParse",
    "message": "Invalid query: Parse error near 'from' (line 1, position 218).",
    "locationType": "parameter",
    "location": "q"
   }
  ],
  "code": 400,
  "message": "Invalid query: Parse error near 'from' (line 1, position 218)."
 }
}

【问题讨论】:

    标签: sql google-fusion-tables


    【解决方案1】:

    from & to是融合表中的保留字,这里是the list of reserved words:

    AND
    ASC
    AS
    BY
    CASE
    CIRCLE
    CONTAINS
    CONTAIN
    CREATE
    DELETE
    DESCRIBE
    DESC
    DOES
    DROP
    ENDS
    EQUAL
    FROM
    GROUP
    IGNORING
    IN
    INSERT
    INTO
    LATLNG
    LIKE
    LIMIT
    MATCHES
    NEAR
    NOT
    OFFSET
    ORDER
    POLYGON
    RECTANGLE
    ROWID
    SELECT
    SET
    SHOW
    SKIP
    ST_DISTANCE
    ST_INTERSECTS
    STARTS
    TABLES
    TABLE
    TO
    UPDATE
    VALUES
    VIEW
    WHERE
    WITH
    ID
    NUMBER
    DOCID
    STRING
    

    我想通了,因为它们在我的问题中突出显示的语法中是蓝色的。

    【讨论】:

      【解决方案2】:

      如果您从 Fusion Tables UI 尝试该查询,您也看不到任何结果,因为没有任何值符合这些条件。日子是“星期一”和“星期二”,时间是 1130-1400 和 1800-2359。

      【讨论】:

      • 对不起,我应该提出正确的查询(我已经编辑了我的第一篇文章)。问题不在于它没有返回查询失败并返回所有内容的任何内容。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多