2016-12-19 2 views
1

У меня есть таблица с двумя атрибутами id и string. Теперь в моих данных большинство строк являются повторяющиеся значения и большинство строк также разделяют те же ценности, но их порядок не так же, как показано в таблице ниже:Назначение идентификатора дублирующимся значениям в данных SQL

id | String 
144 | gall stones 
144 | gallstones 
241 | coats tire equipment 
241 | tire equipment coats 
144 | google 
241 | google 

Теперь я хочу, чтобы добавить третий столбец который показывает, к какой строке принадлежит строка. такие как желчные камни и «желчные камни» и «желчный камень», принадлежат к тому же набору, который содержит одни и те же нити, или «шинное оборудование» и «покрышки для шин» относится к одному набору. Короче говоря, я хочу создать следующую таблицу, используя mysql или java или любым простым способом. Как мои данные имеют 3,5 миллиона записей.

id | String    | Set 
144 | gall stones   | s1 
144 | gallstones   | s1 
241 | coats tire equipment | s2 
241 | tire equipment coats | s2 
144 | google    | s3 
241 | google    | s3 
+0

Предполагаемый заказ вы намерены использовать, неясно. Можете ли вы предоставить запрос, который генерирует записи в том порядке, который вы хотите в своем выходе (отсутствует столбец 'Set')? –

ответ

0

Я настоятельно рекомендую разбить это на две отдельные таблицы, добавив к ним первичные ключи и внешние ключи. Первая таблица будет выглядеть так:

String_table

seq_num (pk) | id | String    | set_seq_num (fk) 
1   | 144 | gall stones   | 1 
2   | 144 | gallstones   | 1 
3   | 241 | coats tire equipment | 2 
4   | 241 | tire equipment coats | 2 
5   | 144 | google    | 3 
6   | 241 | google    | 3 

set_table

seq_num (pk) | set_id 
1   | s1 
2   | s2 
3   | s3 

Я не знаю, что другая информация вы планируете хранить или ссылки на наборы, но держать их в другой стол, а затем соединение в sql для получения данных, как лучший вариант для меня

Select string_t.id, string_t.string, set_t.set_id 
from string_table as string_t 
inner join set_table as set_t 
on string_table.set_seq_num = set_table.seq_num 
+0

Спасибо за ответ. моя единственная проблема решена, но моя другая проблема заключается в том, что «как мы узнаем, что наши две строки, например, 1 =« покрышки шинного оборудования »и 2 =« покрышки для шин »относятся к одному набору данных, особенно если у меня есть данные набор из 1,6 млн записей – rafiyz

Смежные вопросы