У меня есть таблица с идентификатором col1 id, col2 как varchar (разделенное запятой значение) и столбец 3 для присвоения им группы. Таблица выглядитГруппировка значения, разделенного запятой, для общих данных
col1 col2 group
..............................
1 2,3,4
2 5,6
3 1,2,5
4 7,8
5 11,3
6 22,8
это только пример реальных данных, теперь я не должен назначить группу не для них таким образом, что вывод выглядит
col1 col2 group
..............................
1 2,3,4 1
2 5,6 1
3 1,2,5 1
4 7,8 2
5 11,3 1
6 22,8 2
Логика для назначения группы нет, что каждое подобное разделенное запятой значение строки в col2 должно быть одинаковой группой, не такой, как каждый, где в col2, где «2» есть, она должна быть той же группой, но сложность состоит в том, что 2,3,4 вместе, поэтому они все три значения int, если они найдены в любом месте в col2, будут назначены той же группе. Основная часть 2,3,4 и 1,2,5, как в col2, имеют 2, поэтому все int 1,2,3,4,5 должны назначать одну и ту же группу no. Пробная процедура магазина с совпадением против col2, но не получившая желаемого результата
Большинство имп (я не могу использовать нормализацию, потому что я не могу позволить себе создать новую таблицу из моей оригинальной таблицы, которая имеет миллионы записей), даже нормализация не полезно в моем контексте.
Достигнутые до сих пор ...... Ihave установить группу столбцов автоматического приращения, а затем написал эту процедуру: -
BEGIN
declare cil1_new,col2_new,group_new int;
declare done tinyint default 0;
declare group_new varchar(100);
declare cur1 cursor for select col1,col2,`group` from company ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
open cur1;
REPEAT
fetch cur1 into col1_new,col2_new,group_new;
update company set group=group_new where
match(col2) against(concat("'",col2_new,"'"));
until done end repeat;
close cur1;
select * from company;
END
Эта процедура работает, не Синтекс ошибка, но не proble что я не ощущаю желаемого результата.
Вы бы принять решение, включавшее нормализации ваш CSV столбец в другую таблицу? – cha0site
Хранение CSV в реляционной базе данных - это как буксировка вашего автомобиля с помощью вашего велосипеда. – Corbin
нет, потому что реальная таблица слишком велика в gb, поэтому я не могу ее нормализовать. –