Как выбрать ключ в качестве столбца из столбца JSON в таблице CQL? - PullRequest
0 голосов
/ 26 апреля 2019

Я создал следующую таблицу на CQL:

CREATE TABLE new_table ( idRestaurant INT, restaurant map<text,varchar>, InspectionDate date, ViolationCode VARCHAR, ViolationDescription VARCHAR, CriticalFlag VARCHAR, Score INT, GRADE VARCHAR, PRIMARY KEY (InspectionDate )) ;

Затем я вставил данные как jar, и я получил значение restaurant column как json/dictionary

select restarutant from new_table; похож на следующий результат: enter image description here

В обычном SQL для выбора значения ключа столбца json должно быть select json_col.key from table Но этоне работает для CQL, как я могу выбрать значение ключа JSON в качестве столбца или для фильтрации условий WHERE?

Большое спасибо

1 Ответ

0 голосов
/ 26 апреля 2019

Вместо использования карты лучше изменить схему таблицы следующим образом:

CREATE TABLE new_table (
  idRestaurant INT, 
  restaurant_key text,
  restaurant_value text,
  InspectionDate date, 
  ViolationCode VARCHAR,
  ViolationDescription VARCHAR, 
  CriticalFlag VARCHAR, 
  Score INT, 
  GRADE VARCHAR, 
  PRIMARY KEY (InspectionDate, restaurant_key )) ;

, тогда вы можете выбрать любую отдельную строку на основе restaurant_key с запросом, подобным:

select * from new_table where idRestaurant = ? and restaurant_key = ?

или выберите все для ресторана с:

select * from new_table where idRestaurant = ?
...