Оператор Like в сценарии SQL Fusion Tables

У меня есть карта Google, которая извлекает данные из Fusion Tables и отображает их. Когда вы щелкаете по многоугольнику, карта увеличивается и отображаются дополнительные многоугольники внутри исходного многоугольника. Это достигается с помощью двух отдельных таблиц Fusion Tables и некоторого jquery.

Моя проблема состоит в том, чтобы показать многоугольники только внутри исходного многоугольника, а не весь набор (например, показаны только округа в выбранном состоянии, а не все округа в США). Субполигоны сохраняются с использованием кода xxyy, где xx - исходный многоугольник, а yy - суб-многоугольник (таким образом, 1001 будет 10-м штатом и первым округом в этом штате).

Как с помощью сценария Fusion Tables «как SQL» я могу вытащить только субполигоны с первыми двумя цифрами кода, равными определенному числу? Вот что я пробовал:

map.setOptions({
  'query':
    {
    select: 'geometry', 
    from: ftnumber, 
    where: "'name' starts with " + stateCode
    }
});

name - это столбец с 4-значным кодом, а stateCode - это переменная с 2-значным кодом для состояния, хранящегося в нем.

Я также пробовал:

map.setOptions({
   'query':
      {
      select: 'geometry', 
      from: ftnumber, 
      where: "'name' like " + stateCode + "__"
      }
});

Второй вариант предпочтительнее (если это возможно), поскольку я мог бы использовать этот синтаксис для дальнейшего углубления при необходимости.

Окончательное решение:

  • Столбец "имя" установлен на номер
  • запрос

    stateCodeHigh = stateCode + 100; map.setOptions ({'query': {select: 'geometry', from: ftnumber, где: "name> =" + stateCode + "AND name‹ "+ stateCodeHigh}});


person Josh    schedule 15.12.2011    source источник


Ответы (1)


Оба этих запроса должны работать, если столбец name имеет тип String.

Проверьте тип столбца, выбрав Правка> Изменить столбцы. Щелкните столбец «имя» в левом столбце. Если столбец не является текстовым, установите для него значение «Текст» с помощью раскрывающегося меню Тип.

person Kathryn Hurley    schedule 20.12.2011
comment
Хорошо, это была первая часть моей проблемы. У меня это было как числовой столбец (и он все еще нужен как таковой). Поэтому я перехожу на использование двух числовых операторов сравнения. where: "'name' >= " + variable1 + "AND 'name' < " + variable2 где переменная1 - младшее число, а переменная2 - старшее число. Похоже, это не работает. Что-то связано с оператором И? - person Josh; 21.12.2011
comment
Догадаться. Обратите внимание, что у меня нет пробела между кавычками и оператором AND. Итак, комп рендерил это переменной1И, чего он не понимал, но не выдавал ошибки. Спасибо за помощь. - person Josh; 02.01.2012