Я бы хотел обновить свою таблицу так, чтобы строки, имеющие общие значения (в тех же столбцах), были помечены как таковые.
Пример определения таблицы:
CREATE TABLE `MyTable` (
`id` int NOT NULL ,
`a` varchar(10) NOT NULL ,
`b` varchar(10) NOT NULL ,
`state` tinyint NOT NULL ,
PRIMARY KEY (`id`)
) ;
Я бынравится обновлять «состояние» каждой строки, которые разделяют значения в том же столбце.Поэтому, если в первой строке указано «a = AAAA», а во второй строке указано одно и то же значение для «a», оба должны быть обновлены.
Я пробовал это, но это слишком медленно (не быстрее, чем в Java с использованием JDBC):
declare mycursor cursor for select id, a, b from mytable;
open mycursor;
repeat
fetch mycursor into idid, aa, bb;
update mytable set state=1 where (a=aa, b=bb)
until done end repeat;
close mycursor;
Есть идеи, как сделать этот путь лучше?Я не делал приличного SQL годами.