Fusion 表查询的多个 sort/filter 个因素
Multiple sort/filter factors on a Fusion tables query
我想对我的 Google Fusion Table 执行查询。假设我正在使用以下变量组装字符串。如果我在 var sort_factors
中只有一个参数,则一切正常。如何向 sort_factors
添加第二个参数,以便(例如)按日期降序排序并将响应限制为 1000 行?
var base = 'https://www.googleapis.com/fusiontables/v2/query?',
columns = 'sql=SELECT+Lat,Lng,Date,Username,TripID',
from = '+from+XXXXXXXXXXXXXXXXXXX',
sort_factors = '+LIMIT+1000+AND+ORDER+BY+Date+DESC',
key = '&key=XXXXXXXXXXXXXXXXXXX';
我不知道这是否能完全使查询正常工作,但您遗漏了一些 +
:
的空格
var base = 'https://www.googleapis.com/fusiontables/v2/query?',
columns = 'sql=SELECT Lat,Lng,Date,Username,TripID ',
from = '+from XXXXXXXXXXXXXXXXXXX ',
sort_factors = '+LIMIT 1000 AND ORDER BY Date DESC ',
key = '&key=XXXXXXXXXXXXXXXXXXX';
LIMIT
不是排序,那里的 AND
是错误的,LIMIT 必须是 SQL:
中的最后一个子句
'+ORDER+BY+Date+DESC+LIMIT+1000'
子句的顺序是固定的,必须是:
- 哪里
- 组
- 订单
- 极限
你的代码好像是Javascript,你最好帮自己一个忙,让JS处理编码。
可能的方法:
var base = 'https://www.googleapis.com/fusiontables/v2/query',
columns = 'SELECT Lat,Lng,Date,Username,TripID',
from = 'from fusionTableID',
//apply a filter when you want to
where = '',
//group the results when you want to
groupby = '',
orderby = 'ORDER BY DATE DESC',
limit = 'LIMIT 1000',
key = 'yourApiKey',
//do you want a JSONP-response? Add a callback-parameter
callback = '&callback=functionName',
//prepare the query;
sql = encodeURIComponent([columns, from, where, groupby, orderby, limit].join(' ')),
//prepare the url
url = [base, '?sql=', sql, callback, '&key=', key].join('');
//see what we got
document.body.appendChild(document.createTextNode(url));
body {
font-family: Monospace
}
使用所有 4 个子句的演示:http://jsfiddle.net/doktormolle/fc47243g/
我想对我的 Google Fusion Table 执行查询。假设我正在使用以下变量组装字符串。如果我在 var sort_factors
中只有一个参数,则一切正常。如何向 sort_factors
添加第二个参数,以便(例如)按日期降序排序并将响应限制为 1000 行?
var base = 'https://www.googleapis.com/fusiontables/v2/query?',
columns = 'sql=SELECT+Lat,Lng,Date,Username,TripID',
from = '+from+XXXXXXXXXXXXXXXXXXX',
sort_factors = '+LIMIT+1000+AND+ORDER+BY+Date+DESC',
key = '&key=XXXXXXXXXXXXXXXXXXX';
我不知道这是否能完全使查询正常工作,但您遗漏了一些 +
:
var base = 'https://www.googleapis.com/fusiontables/v2/query?',
columns = 'sql=SELECT Lat,Lng,Date,Username,TripID ',
from = '+from XXXXXXXXXXXXXXXXXXX ',
sort_factors = '+LIMIT 1000 AND ORDER BY Date DESC ',
key = '&key=XXXXXXXXXXXXXXXXXXX';
LIMIT
不是排序,那里的 AND
是错误的,LIMIT 必须是 SQL:
'+ORDER+BY+Date+DESC+LIMIT+1000'
子句的顺序是固定的,必须是:
- 哪里
- 组
- 订单
- 极限
你的代码好像是Javascript,你最好帮自己一个忙,让JS处理编码。
可能的方法:
var base = 'https://www.googleapis.com/fusiontables/v2/query',
columns = 'SELECT Lat,Lng,Date,Username,TripID',
from = 'from fusionTableID',
//apply a filter when you want to
where = '',
//group the results when you want to
groupby = '',
orderby = 'ORDER BY DATE DESC',
limit = 'LIMIT 1000',
key = 'yourApiKey',
//do you want a JSONP-response? Add a callback-parameter
callback = '&callback=functionName',
//prepare the query;
sql = encodeURIComponent([columns, from, where, groupby, orderby, limit].join(' ')),
//prepare the url
url = [base, '?sql=', sql, callback, '&key=', key].join('');
//see what we got
document.body.appendChild(document.createTextNode(url));
body {
font-family: Monospace
}
使用所有 4 个子句的演示:http://jsfiddle.net/doktormolle/fc47243g/