2014-07-26 2 views
1

Google 퓨전 테이블 API (google 앱 스크립트 사용)를 사용하여 #이 포함 된 문자열을 쿼리하는 데 문제가 있습니다. = var에 SQL을 다음파운드 기호 (#)가 포함 된 문자열에 대한 Google fusion table 쿼리

UrlFetchApp.fetch('https://www.googleapis.com/fusiontables/v1/query?sql='+sql ,getUrlFetchOptions()).getContentText(); 

실패 : 와일드 카드를 사용

var sql = "SELECT ROWID,name from " +ITEMTABLE_KEY +" WHERE name = 'MT TAM - Y #'" 

성공 다음의 모든 예에서

, 내가 문자열 변수는 SQL 호출 다음에 호출 설정 "SELECT ROWID, 이름"+ ITEMTABLE_KEY + "이름이 좋아"MT TAM-Y _ ' "

그러나 IN 문을 사용하여 동일한 작업을 수행하려고하면 실패합니다. 내가 무엇을하고 싶은지). 예를 들어, 다음은 실패 : 나는 다시 qutoes와 문자열을 둘러싼뿐만 아니라 해시 앞에 백 슬래시를 사용하고, 심지어 대괄호 안에 해시 마크를 넣어 시도

. 다음은 모두 실패했다 :

var sql = "SELECT ROWID,name from " +ITEMTABLE_KEY +" WHERE name = `MT TAM - Y #`" 
var sql = "SELECT ROWID,name from " +ITEMTABLE_KEY +" WHERE name = ``MT TAM - Y #``" 
var sql = "SELECT ROWID,name from " +ITEMTABLE_KEY +" WHERE name = 'MT TAM - Y [#]'" 

불행하게도 나는 이미 일하고 있어요 프로젝트는 보고서에 고유 한 ID 번호의 년대를 사용할 수 있도록하지 않는 다른 데시벨에서 700 개 항목이 있습니다. 나는 사용자가 그 DB에서 보고서를 실행하고 보고서의 식별자를 사용하여이 프로젝트를 끝내기를 원합니다. 그리고 그 식별자의 절반 이상은 #를 포함하고 있습니다. 왜냐하면 우리의 db에서는 파운드로 판매되는 것을 나타 내기 때문입니다. 융합 테이블 API 쿼리 문을 #?

+0

어떻게 쿼리를 실행합니까를? –

+0

나는 'sql'이라고하는 문자열 변수를 취하여 다음 명령으로 처리하는 함수를 가지고있다 :'UrlFetchApp.fetch ('https://www.googleapis.com/fusiontables/v1/query?sql='+sql , getUrlFetchOptions()). getContentText(); ' – Jonathan

답변

0

사용 FusionTablesService 쿼리를 보낼 :

var result = FusionTables.Query.sqlGet("SELECT ROWID,name FROM " + 
             ITEMTABLE_KEY +" 
             WHERE name = 'MT TAM - Y #'"); 

관련 :

+0

정말 고마워요. 그게 효과가 있었어! 필자는 UrlFetchApp 서비스와 FusionTables 서비스의 Query 메서드를 사용하는 것의 차이점에 대해서는 여전히 조금 혼란 스럽습니다. 그러나 이것은 명확하게 작동했습니다! 감사. – Jonathan

+0

차이점은 인코딩 될 것입니다, UrlFetchApp는 '#'을 인코딩하지 않으므로'sql'의 일부가 아니기 때문에 대신 URL에 대한 앵커를 정의합니다 –