【发布时间】:2012-07-17 04:35:37
【问题描述】:
我正在尝试获取 ROWID 以及 Google Fusion Tables 中每一行的所有数据。
这个选择语句:
SELECT *, ROWID FROM [tableID]
导致此错误:
"domain": "fusiontables",
"reason": "badQueryCouldNotParse",
"message": "Invalid query: Parse error near '*' (line 1, position 14).",
"locationType": "parameter",
"location": "q"
如果我指定列名,例如...
SELECT ROWID, name, city, suburb, etc FROM [tableID]
...其中 etc 是所有列名,它工作正常。问题是,我有很多列名,并且会随着时间的推移添加/删除它们,并且不想每次都更新该 select 语句。
可以使用 ROWID + 星号通配符 SELECT 语句吗?
(我意识到我可以通过使用 DESCRIBE 查询来获取所有列名并从那里创建我的查询来做到这一点,但如果可能的话,我希望将调用次数降至最低)。
【问题讨论】:
-
我认为目前您必须使用解决方法进行两次调用(使用 DESCRIBE 或新的 REST-API)。也许您可以缓存结果以减少每天的调用量(即每天检查是否有新的/不同的列)。
-
谢谢奥迪。缓存的好主意——我现在会采用该解决方案。
-
确实很奇怪。我不介意 Fusion Tables 是否在每个查询中都返回了 ROWID,无论它是否被请求。但是能够得到它或 *(如果你知道每个列名,或者两者都得到)有点烦人。
-
我正在尝试与 OP 完全相同。有没有人在这方面取得了进展,还是我只需要查询列名并列出它们?
-
嗨@Phlucios - 我的代码仍在使用上述系统(使用 DESCRIBE 调用,然后使用它来创建我的 SELECT 查询)。不过,我最近没有机会重新检查 API,所以如果您找到解决原始问题的更简单方法,请告诉我们。