Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SELECT Specific Value from map

I am trying to create a WIDE Column Table, 20,000+ columns

Initially I was thinking I would use:

CREATE TABLE details (
   key TEXT,
   detail map<TEXT, TEXT>
   PRIMARY KEY (KEY)
  );

Inserting into this table works fine

UPDATE details SET detail = detail + { 'col1': '12'} where key='123' ;
UPDATE details SET detail = detail + { 'col20000': 'ABCD'} where key='123' ;

However, I would like to read an individual detail:

   select detail[col1] where key='123'

when executing this query I get the following error:

 no viable alternative at input '['

Will this work, or do I need a different approach?

like image 535
e90jimmy Avatar asked Apr 15 '13 21:04

e90jimmy


People also ask

How do you get a specific value from a map?

HashMap. get() method of HashMap class is used to retrieve or fetch the value mapped by a particular key mentioned in the parameter. It returns NULL when the map contains no such mapping for the key.

Can we get key from value in HashMap?

Example: Get key for a given value in HashMap Here, the entrySet() method returns a set view of all the entries. Inside the if statement we check if the value from the entry is the same as the given value. And, for matching value, we get the corresponding key.

How do I extract a map key?

Get Keys and Values (Entries) from Java Map The entrySet() method returns a set of Map. Entry<K, V> objects that reside in the map. You can easily iterate over this set to get the keys and their associated values from a map.


2 Answers

Collections are small groups of data that you fetch all at once.

If you want to access tuples at a finer level, and still be able to ask "what are all the pairs of data for a given key," you should use a table like this:

CREATE TABLE details (
  key TEXT,
  detail_key text,
  detail_value text,
  PRIMARY KEY (key, detail_key)
);

This will allow SELECT * FROM details WHERE key = ? as well as SELECT * FROM detail WHERE key = ? AND detail_key = ?.

like image 137
jbellis Avatar answered Oct 19 '22 14:10

jbellis


Basically this functionality is not yet supported by cassandra.

See this cql3 collections

like image 30
abhi Avatar answered Oct 19 '22 12:10

abhi