Fusion table API select似乎不起作用“WHERE ROWID> n”

时间:2014-09-25 09:47:01

标签: php sql google-fusion-tables

使用官方fusion tables php api并关注the docs,如果我使用,例如:

$fusionsql = "select ROWID, name, email from $docID WHERE ROWID > 1244";

它返回 ROWID 1244的数据,但没有更多。如果它要返回一行,我预计它将是ROWID 1245。 其他陈述按预期工作。

作为补充奖金,我只是阅读getting started docs错误,或者是否在页面中搜索"在表格中插入新行时发现错误?#34;?它说:

  

使用特定的ROWID进行POST,在其中传入新行的数据:

,给出的示例代码是:

  INSERT INTO <table_id> (<column_name> {, <column_name>}*) 
    VALUES (<value> {, <value>}*)

我认为ROWID是内部生成的东西?此外,上面的陈述似乎并没有实际的ROWID选项。

编辑:解决方法是在浏览器中打开表格,然后通过交叉引用其他数据手动计算出失败的行号,然后使用,例如{{1在你的查询中。

显然,这是一个PITA,但它让我在紧急情况下前进。仍然想知道为什么&gt;虽然失败了。

感谢。

1 个答案:

答案 0 :(得分:1)

根据您链接的API文档,ROWID只能与等式谓词一起使用:

  

&LT; row_condition&GT;在WHERE子句中使用。语法是:ROWID =   '&LT;串GT;'

     

ROWID - 使用您从之前的SELECT或中获得的行ID   插入。   '&LT;串GT;' - 引号中的文本字符串。如果字符串包含   引号字符,在每个引号字符前面加一个反斜杠(\)。

ROWID是内部生成的,没有保证的含义或顺序。它也是更新或删除现有行的唯一方法,因此上面的文档。